observability-toolkit 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +203 -91
  2. package/dist/backends/index.d.ts +70 -0
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/index.js +49 -1
  5. package/dist/backends/index.js.map +1 -1
  6. package/dist/backends/local-jsonl.d.ts.map +1 -1
  7. package/dist/backends/local-jsonl.js +31 -5
  8. package/dist/backends/local-jsonl.js.map +1 -1
  9. package/dist/backends/local-jsonl.test.js +281 -0
  10. package/dist/backends/local-jsonl.test.js.map +1 -1
  11. package/dist/backends/signoz-api.d.ts.map +1 -1
  12. package/dist/backends/signoz-api.js +6 -0
  13. package/dist/backends/signoz-api.js.map +1 -1
  14. package/dist/lib/file-utils.d.ts +76 -0
  15. package/dist/lib/file-utils.d.ts.map +1 -1
  16. package/dist/lib/file-utils.js +135 -6
  17. package/dist/lib/file-utils.js.map +1 -1
  18. package/dist/lib/file-utils.test.js +214 -1
  19. package/dist/lib/file-utils.test.js.map +1 -1
  20. package/dist/lib/indexer.d.ts +10 -0
  21. package/dist/lib/indexer.d.ts.map +1 -1
  22. package/dist/lib/indexer.js +34 -7
  23. package/dist/lib/indexer.js.map +1 -1
  24. package/dist/lib/indexer.test.js +186 -0
  25. package/dist/lib/indexer.test.js.map +1 -1
  26. package/dist/tools/health-check.js +1 -1
  27. package/dist/tools/health-check.js.map +1 -1
  28. package/dist/tools/query-llm-events.d.ts +53 -4
  29. package/dist/tools/query-llm-events.d.ts.map +1 -1
  30. package/dist/tools/query-llm-events.js +39 -6
  31. package/dist/tools/query-llm-events.js.map +1 -1
  32. package/dist/tools/query-llm-events.test.js +253 -0
  33. package/dist/tools/query-llm-events.test.js.map +1 -1
  34. package/dist/tools/query-logs.d.ts +6 -0
  35. package/dist/tools/query-logs.d.ts.map +1 -1
  36. package/dist/tools/query-logs.js +11 -2
  37. package/dist/tools/query-logs.js.map +1 -1
  38. package/dist/tools/query-logs.test.js +180 -0
  39. package/dist/tools/query-logs.test.js.map +1 -1
  40. package/dist/tools/query-metrics.d.ts +6 -6
  41. package/dist/tools/query-metrics.js +1 -1
  42. package/dist/tools/query-metrics.js.map +1 -1
  43. package/dist/tools/query-metrics.test.js +21 -0
  44. package/dist/tools/query-metrics.test.js.map +1 -1
  45. package/dist/tools/query-traces.d.ts +42 -0
  46. package/dist/tools/query-traces.d.ts.map +1 -1
  47. package/dist/tools/query-traces.js +20 -1
  48. package/dist/tools/query-traces.js.map +1 -1
  49. package/dist/tools/query-traces.test.js +222 -0
  50. package/dist/tools/query-traces.test.js.map +1 -1
  51. package/package.json +1 -1
package/README.md CHANGED
@@ -18,134 +18,250 @@ claude mcp add observability-toolkit -- node ~/.claude/mcp-servers/observability
18
18
 
19
19
  | Tool | Description |
20
20
  |------|-------------|
21
- | `obs_query_traces` | Query traces from local JSONL or SigNoz |
22
- | `obs_query_metrics` | Query metrics with aggregation support |
23
- | `obs_query_logs` | Query logs by severity, search text, trace ID |
21
+ | `obs_query_traces` | Query traces with filtering, regex, numeric operators |
22
+ | `obs_query_metrics` | Query metrics with aggregations (sum, avg, p50, p95, p99, rate) |
23
+ | `obs_query_logs` | Query logs with boolean search, field extraction |
24
24
  | `obs_query_llm_events` | Query LLM events with token usage and duration metrics |
25
- | `obs_health_check` | Check telemetry system health |
25
+ | `obs_health_check` | Check telemetry system health with cache statistics |
26
26
  | `obs_context_stats` | Get context window utilization stats |
27
27
  | `obs_get_trace_url` | Get SigNoz trace viewer URL (requires SigNoz) |
28
- | `obs_setup_claudeignore` | Add entries to .claudeignore (telemetry, test files, coverage) |
28
+ | `obs_setup_claudeignore` | Add entries to .claudeignore |
29
29
 
30
30
  ## Configuration
31
31
 
32
- | Variable | Description | Required |
33
- |----------|-------------|----------|
34
- | `TELEMETRY_DIR` | Local telemetry directory | No (default: `~/.claude/telemetry`) |
35
- | `SIGNOZ_URL` | SigNoz instance URL | No (enables SigNoz integration) |
36
- | `SIGNOZ_API_KEY` | SigNoz API key | No (required if using SigNoz) |
37
-
38
- The server works standalone with local JSONL files. SigNoz integration is optional.
32
+ | Variable | Description | Default |
33
+ |----------|-------------|---------|
34
+ | `TELEMETRY_DIR` | Local telemetry directory | `~/.claude/telemetry` |
35
+ | `SIGNOZ_URL` | SigNoz instance URL | - |
36
+ | `SIGNOZ_API_KEY` | SigNoz API key | - |
37
+ | `CACHE_TTL_MS` | Query cache TTL in milliseconds | `60000` |
38
+ | `RETENTION_DAYS` | Days to retain telemetry files | `7` |
39
39
 
40
40
  ## Usage Examples
41
41
 
42
- ### Query traces
42
+ ### Query Traces
43
43
 
44
- ```
45
- obs_query_traces({ backend: "local", limit: 10 })
46
- obs_query_traces({ traceId: "abc123..." })
47
- obs_query_traces({ serviceName: "claude-code", minDurationMs: 100 })
48
- obs_query_traces({ attributeFilter: { "agent.source_type": "lazy" } })
49
- ```
44
+ ```javascript
45
+ // Basic query
46
+ obs_query_traces({ limit: 10 })
50
47
 
51
- ### Filterable Attributes
48
+ // Filter by trace ID
49
+ obs_query_traces({ traceId: "abc123..." })
52
50
 
53
- Use `attributeFilter` to query by span attributes:
51
+ // Filter by service and duration
52
+ obs_query_traces({ serviceName: "claude-code", minDurationMs: 100 })
54
53
 
55
- | Attribute | Values | Description |
56
- |-----------|--------|-------------|
57
- | `agent.type` | string | Agent name (e.g., "Explore", "auto-error-resolver") |
58
- | `agent.source_type` | `active`, `lazy`, `builtin`, `settings` | Where agent is defined |
59
- | `agent.category` | string | Agent category (e.g., "error-handling", "code") |
60
- | `plugin.name` | string | Skill/plugin name |
61
- | `plugin.source_type` | `active`, `lazy`, `settings` | Where skill is defined |
62
- | `plugin.category` | string | Skill category |
63
- | `mcp.server` | string | MCP server name |
64
- | `mcp.tool` | string | MCP tool name |
65
- | `builtin.tool` | string | Built-in tool name (Read, Write, Bash, etc.) |
66
- | `hook.type` | `agent`, `plugin`, `mcp`, `builtin` | Hook handler type |
54
+ // Regex pattern matching
55
+ obs_query_traces({ spanNameRegex: "^http\\..*" })
56
+
57
+ // Numeric attribute filtering
58
+ obs_query_traces({
59
+ numericFilter: [
60
+ { attribute: "http.status_code", operator: "gte", value: 400 }
61
+ ]
62
+ })
63
+
64
+ // Existence checks
65
+ obs_query_traces({
66
+ attributeExists: ["error.message"],
67
+ attributeNotExists: ["http.response.body"]
68
+ })
69
+
70
+ // OTel GenAI agent/tool filters
71
+ obs_query_traces({ agentName: "Explore", toolName: "Read" })
72
+ obs_query_traces({ operationName: "execute_tool", toolCallId: "toolu_123" })
73
+ ```
67
74
 
68
- ### Query logs
75
+ ### Query Logs
69
76
 
70
- ```
77
+ ```javascript
78
+ // Basic severity filter
71
79
  obs_query_logs({ severity: "ERROR", limit: 20 })
72
- obs_query_logs({ search: "timeout", startDate: "2026-01-28" })
73
- obs_query_logs({ traceId: "abc123..." })
80
+
81
+ // Boolean search (AND)
82
+ obs_query_logs({
83
+ searchTerms: ["timeout", "connection"],
84
+ searchOperator: "AND"
85
+ })
86
+
87
+ // Boolean search (OR)
88
+ obs_query_logs({
89
+ searchTerms: ["error", "warning", "critical"],
90
+ searchOperator: "OR"
91
+ })
92
+
93
+ // Field extraction from JSON logs
94
+ obs_query_logs({
95
+ extractFields: ["user.id", "request.method", "response.status"]
96
+ })
97
+
98
+ // Exclude patterns
99
+ obs_query_logs({
100
+ search: "error",
101
+ excludeSearch: "health-check"
102
+ })
74
103
  ```
75
104
 
76
- ### Query metrics
105
+ ### Query Metrics
77
106
 
78
- ```
107
+ ```javascript
108
+ // Basic query
79
109
  obs_query_metrics({ metricName: "session.context.size" })
80
- obs_query_metrics({ metricName: "gen_ai.client.token.usage", aggregation: "sum" })
81
- ```
82
110
 
83
- ### Query LLM events
84
-
85
- ```
86
- obs_query_llm_events({})
87
- obs_query_llm_events({ model: "claude-opus-4-5", limit: 10 })
88
- obs_query_llm_events({ provider: "anthropic", startDate: "2026-01-28" })
111
+ // Aggregations
112
+ obs_query_metrics({ metricName: "http.duration", aggregation: "avg" })
113
+ obs_query_metrics({ metricName: "http.duration", aggregation: "p95" })
114
+ obs_query_metrics({ metricName: "requests.count", aggregation: "rate" })
115
+
116
+ // Time bucket grouping
117
+ obs_query_metrics({
118
+ metricName: "token.usage",
119
+ aggregation: "sum",
120
+ timeBucket: "1h",
121
+ groupBy: ["model"]
122
+ })
123
+
124
+ // Percentiles
125
+ obs_query_metrics({ metricName: "latency", aggregation: "p99" })
89
126
  ```
90
127
 
91
- ### Health check
128
+ ### Query LLM Events
92
129
 
93
- ```
94
- obs_health_check({ verbose: true })
95
- ```
130
+ ```javascript
131
+ // Basic query
132
+ obs_query_llm_events({ limit: 20 })
96
133
 
97
- ### Context stats
134
+ // Filter by model and provider
135
+ obs_query_llm_events({ model: "claude-3-opus", provider: "anthropic" })
98
136
 
99
- ```
100
- obs_context_stats({})
101
- obs_context_stats({ sessionId: "abc123...", includeCost: true })
102
- ```
137
+ // OTel GenAI operation types
138
+ obs_query_llm_events({ operationName: "chat" })
139
+ obs_query_llm_events({ operationName: "invoke_agent" })
103
140
 
104
- ### Get trace URL
141
+ // Filter by conversation
142
+ obs_query_llm_events({ conversationId: "conv-abc123" })
105
143
 
106
- ```
107
- obs_get_trace_url({ traceId: "abc123..." })
144
+ // Combine filters
145
+ obs_query_llm_events({
146
+ operationName: "chat",
147
+ provider: "anthropic",
148
+ conversationId: "conv-abc123"
149
+ })
108
150
  ```
109
151
 
110
- ### Setup .claudeignore
152
+ ### Health Check with Cache Stats
111
153
 
112
- ```
113
- obs_setup_claudeignore({})
114
- obs_setup_claudeignore({ dryRun: true })
115
- obs_setup_claudeignore({ includeDefaults: false, entry: "custom/" })
116
- obs_setup_claudeignore({ entries: ["logs/", "tmp/", "*.bak"] })
154
+ ```javascript
155
+ obs_health_check({ verbose: true })
156
+
157
+ // Returns:
158
+ {
159
+ "status": "ok",
160
+ "backends": { ... },
161
+ "cache": {
162
+ "traces": { "hits": 10, "misses": 5, "hitRate": 0.67, "size": 15, "evictions": 0 },
163
+ "logs": { "hits": 8, "misses": 12, "hitRate": 0.4, "size": 20, "evictions": 2 },
164
+ "metrics": { "hits": 0, "misses": 0, "hitRate": 0, "size": 0, "evictions": 0 },
165
+ "llmEvents": { "hits": 0, "misses": 0, "hitRate": 0, "size": 0, "evictions": 0 }
166
+ }
167
+ }
117
168
  ```
118
169
 
119
- Default entries added when `includeDefaults: true` (default):
120
- - `telemetry/` - telemetry data
121
- - `*.test.ts` - TypeScript test files
122
- - `*.test.js` - JavaScript test files
123
- - `coverage/` - coverage reports
170
+ ## Features
171
+
172
+ ### Query Capabilities
173
+
174
+ | Feature | Description |
175
+ |---------|-------------|
176
+ | Percentile Aggregations | p50, p95, p99 for metrics |
177
+ | Time Bucket Grouping | 1m, 5m, 1h, 1d buckets for trend analysis |
178
+ | Rate Calculations | Per-second rate of change |
179
+ | Numeric Operators | gt, gte, lt, lte, eq for attribute filtering |
180
+ | Regex Patterns | Advanced span name filtering |
181
+ | Boolean Search | AND/OR operators for log queries |
182
+ | Field Extraction | Extract JSON paths from structured logs |
183
+ | Negation Filters | Exclude matching spans/logs |
184
+ | Existence Checks | Filter by attribute presence |
185
+
186
+ ### OTel Compliance
187
+
188
+ | Feature | Description |
189
+ |---------|-------------|
190
+ | severityNumber | Standard OTel severity levels |
191
+ | statusCode | UNSET, OK, ERROR for spans |
192
+ | Histogram Buckets | Full histogram distribution support |
193
+ | InstrumentationScope | Library/module metadata |
194
+ | Span Links | Cross-trace relationships |
195
+ | Exemplars | Metric-to-trace correlation |
196
+ | Aggregation Temporality | DELTA, CUMULATIVE support |
197
+
198
+ ### OTel GenAI Semantic Conventions (8/10 compliance)
199
+
200
+ | Feature | Description |
201
+ |---------|-------------|
202
+ | `gen_ai.operation.name` | Filter by chat, embeddings, invoke_agent, execute_tool |
203
+ | `gen_ai.provider.name` | Provider fallback: gen_ai.provider.name → gen_ai.system → provider |
204
+ | `gen_ai.conversation.id` | Filter LLM events by conversation ID |
205
+ | `gen_ai.agent.id/name` | Filter traces by agent attributes |
206
+ | `gen_ai.tool.name/call.id` | Filter traces by tool attributes |
207
+ | Percentiles | p50, p95, p99, rate aggregations |
208
+
209
+ ### Performance
210
+
211
+ | Feature | Description |
212
+ |---------|-------------|
213
+ | Query Caching | LRU cache with configurable TTL |
214
+ | File Indexing | .idx sidecars for fast lookups |
215
+ | Gzip Support | Transparent decompression of .jsonl.gz files |
216
+ | BatchWriter | Buffered writes to reduce I/O |
217
+ | Streaming | Early termination for large files |
218
+ | Parallel Queries | Concurrent multi-directory queries |
219
+ | Cursor Pagination | Efficient large result set handling |
220
+
221
+ ### Internal Observability
222
+
223
+ | Feature | Description |
224
+ |---------|-------------|
225
+ | Cache Metrics | Hit/miss/eviction tracking |
226
+ | Query Timing | Slow query warnings (>500ms) |
227
+ | Circuit Breaker Logging | State transition visibility |
228
+ | Health Check Stats | Cache statistics in health output |
124
229
 
125
230
  ## Data Sources
126
231
 
127
232
  ### Local JSONL (Default)
128
233
 
129
- Automatically scans multiple telemetry directories:
234
+ Scans multiple telemetry directories:
130
235
  - **Global**: `~/.claude/telemetry/` (always checked)
131
- - **Project-local**: `.claude/telemetry/`, `telemetry/`, `.telemetry/` (checked if they exist in cwd)
132
-
133
- This allows querying both global Claude Code telemetry and project-specific telemetry.
236
+ - **Project-local**: `.claude/telemetry/`, `telemetry/`, `.telemetry/`
134
237
 
135
- File patterns:
136
- - `traces-YYYY-MM-DD.jsonl` - Trace spans
137
- - `logs-YYYY-MM-DD.jsonl` - Log records
138
- - `metrics-YYYY-MM-DD.jsonl` - Metric data points
139
- - `llm-events-YYYY-MM-DD.jsonl` - LLM events
238
+ File patterns (supports gzip compression):
239
+ - `traces-YYYY-MM-DD.jsonl` / `.jsonl.gz`
240
+ - `logs-YYYY-MM-DD.jsonl` / `.jsonl.gz`
241
+ - `metrics-YYYY-MM-DD.jsonl` / `.jsonl.gz`
242
+ - `llm-events-YYYY-MM-DD.jsonl` / `.jsonl.gz`
140
243
 
141
244
  ### SigNoz Cloud (Optional)
142
245
 
143
- When `SIGNOZ_URL` and `SIGNOZ_API_KEY` are configured, queries SigNoz Cloud API:
144
- - Traces: `/api/v3/traces`
145
- - Logs: `/api/v3/logs`
146
- - Metrics: `/api/v3/query_range`
246
+ When configured, queries SigNoz Cloud API with:
247
+ - Circuit breaker protection
248
+ - Cursor-based pagination
249
+ - Response time tracking
147
250
 
148
- Use `backend: "signoz"` in queries to explicitly use SigNoz, or `backend: "auto"` to try both.
251
+ ## OTLP Export
252
+
253
+ Export data in OpenTelemetry format:
254
+
255
+ ```javascript
256
+ // Export traces
257
+ const otlpTraces = await backend.exportTracesOTLP({ startDate: "2026-01-28" });
258
+
259
+ // Export logs
260
+ const otlpLogs = await backend.exportLogsOTLP({ severity: "ERROR" });
261
+
262
+ // Export metrics
263
+ const otlpMetrics = await backend.exportMetricsOTLP({ metricName: "http.duration" });
264
+ ```
149
265
 
150
266
  ## Development
151
267
 
@@ -153,15 +269,11 @@ Use `backend: "signoz"` in queries to explicitly use SigNoz, or `backend: "auto"
153
269
  cd ~/.claude/mcp-servers/observability-toolkit
154
270
  npm install
155
271
  npm run build
156
- npm test # 617 tests
272
+ npm test # 911 tests
157
273
  npm run start
158
274
  ```
159
275
 
160
276
  ## Documentation
161
277
 
162
- - [ROADMAP.md](docs/ROADMAP.md) - Improvement roadmap with priorities
163
- - [code-review.md](docs/code-review.md) - Code review findings
164
- - [security-audit.md](docs/security-audit.md) - Security audit report
165
- - [observability-audit.md](docs/observability-audit.md) - Observability best practices audit
166
-
167
-
278
+ - [CHANGELOG.md](CHANGELOG.md) - Version history and changes
279
+ - [docs/ROADMAP.md](docs/ROADMAP.md) - Feature roadmap (all items complete)
@@ -119,6 +119,55 @@ export interface NumericFilterCondition {
119
119
  operator: 'gt' | 'gte' | 'lt' | 'lte' | 'eq';
120
120
  value: number;
121
121
  }
122
+ /**
123
+ * OTel GenAI agent and tool attribute names
124
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
125
+ */
126
+ export declare const GENAI_AGENT_ATTRIBUTES: {
127
+ readonly AGENT_ID: "gen_ai.agent.id";
128
+ readonly AGENT_NAME: "gen_ai.agent.name";
129
+ readonly AGENT_DESCRIPTION: "gen_ai.agent.description";
130
+ };
131
+ export declare const GENAI_TOOL_ATTRIBUTES: {
132
+ readonly TOOL_NAME: "gen_ai.tool.name";
133
+ readonly TOOL_CALL_ID: "gen_ai.tool.call.id";
134
+ readonly TOOL_TYPE: "gen_ai.tool.type";
135
+ };
136
+ /**
137
+ * OTel GenAI request attribute names
138
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
139
+ */
140
+ export declare const GENAI_REQUEST_ATTRIBUTES: {
141
+ readonly MODEL: "gen_ai.request.model";
142
+ readonly TEMPERATURE: "gen_ai.request.temperature";
143
+ readonly MAX_TOKENS: "gen_ai.request.max_tokens";
144
+ };
145
+ /**
146
+ * OTel GenAI response attribute names
147
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
148
+ */
149
+ export declare const GENAI_RESPONSE_ATTRIBUTES: {
150
+ readonly MODEL: "gen_ai.response.model";
151
+ readonly FINISH_REASONS: "gen_ai.response.finish_reasons";
152
+ };
153
+ /**
154
+ * OTel GenAI usage attribute names
155
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
156
+ */
157
+ export declare const GENAI_USAGE_ATTRIBUTES: {
158
+ readonly INPUT_TOKENS: "gen_ai.usage.input_tokens";
159
+ readonly OUTPUT_TOKENS: "gen_ai.usage.output_tokens";
160
+ };
161
+ /**
162
+ * OTel GenAI core attribute names
163
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
164
+ */
165
+ export declare const GENAI_CORE_ATTRIBUTES: {
166
+ readonly OPERATION_NAME: "gen_ai.operation.name";
167
+ readonly PROVIDER_NAME: "gen_ai.provider.name";
168
+ readonly SYSTEM: "gen_ai.system";
169
+ readonly CONVERSATION_ID: "gen_ai.conversation.id";
170
+ };
122
171
  export interface TraceQueryOptions extends QueryOptions {
123
172
  traceId?: string;
124
173
  serviceName?: string;
@@ -136,6 +185,18 @@ export interface TraceQueryOptions extends QueryOptions {
136
185
  attributeNotExists?: string[];
137
186
  /** Numeric comparison filters for attributes */
138
187
  numericFilter?: NumericFilterCondition[];
188
+ /** Filter by agent ID (gen_ai.agent.id) */
189
+ agentId?: string;
190
+ /** Filter by agent name (gen_ai.agent.name) */
191
+ agentName?: string;
192
+ /** Filter by tool name (gen_ai.tool.name) */
193
+ toolName?: string;
194
+ /** Filter by tool call ID (gen_ai.tool.call.id) */
195
+ toolCallId?: string;
196
+ /** Filter by tool type (gen_ai.tool.type) */
197
+ toolType?: string;
198
+ /** Filter by operation name (gen_ai.operation.name) */
199
+ operationName?: GenAIOperationName;
139
200
  }
140
201
  export interface LogQueryOptions extends QueryOptions {
141
202
  severity?: string;
@@ -168,11 +229,20 @@ export interface LLMEvent {
168
229
  name: string;
169
230
  attributes: Record<string, unknown>;
170
231
  }
232
+ /**
233
+ * OTel GenAI operation types
234
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
235
+ */
236
+ export type GenAIOperationName = 'chat' | 'embeddings' | 'invoke_agent' | 'execute_tool';
171
237
  export interface LLMEventQueryOptions extends QueryOptions {
172
238
  eventName?: string;
173
239
  model?: string;
174
240
  provider?: string;
175
241
  search?: string;
242
+ /** Filter by OTel GenAI operation name (chat, embeddings, invoke_agent, execute_tool) */
243
+ operationName?: GenAIOperationName;
244
+ /** Filter by conversation/session ID (gen_ai.conversation.id) */
245
+ conversationId?: string;
176
246
  }
177
247
  export type { OTLPTraceExport, OTLPLogExport, OTLPMetricExport, } from '../lib/otlp-export.js';
178
248
  export interface TelemetryBackend {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,53 @@
1
1
  /**
2
2
  * Backend interface for telemetry data sources
3
3
  */
4
- export {};
4
+ /**
5
+ * OTel GenAI agent and tool attribute names
6
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
7
+ */
8
+ export const GENAI_AGENT_ATTRIBUTES = {
9
+ AGENT_ID: 'gen_ai.agent.id',
10
+ AGENT_NAME: 'gen_ai.agent.name',
11
+ AGENT_DESCRIPTION: 'gen_ai.agent.description',
12
+ };
13
+ export const GENAI_TOOL_ATTRIBUTES = {
14
+ TOOL_NAME: 'gen_ai.tool.name',
15
+ TOOL_CALL_ID: 'gen_ai.tool.call.id',
16
+ TOOL_TYPE: 'gen_ai.tool.type',
17
+ };
18
+ /**
19
+ * OTel GenAI request attribute names
20
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
21
+ */
22
+ export const GENAI_REQUEST_ATTRIBUTES = {
23
+ MODEL: 'gen_ai.request.model',
24
+ TEMPERATURE: 'gen_ai.request.temperature',
25
+ MAX_TOKENS: 'gen_ai.request.max_tokens',
26
+ };
27
+ /**
28
+ * OTel GenAI response attribute names
29
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
30
+ */
31
+ export const GENAI_RESPONSE_ATTRIBUTES = {
32
+ MODEL: 'gen_ai.response.model',
33
+ FINISH_REASONS: 'gen_ai.response.finish_reasons',
34
+ };
35
+ /**
36
+ * OTel GenAI usage attribute names
37
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
38
+ */
39
+ export const GENAI_USAGE_ATTRIBUTES = {
40
+ INPUT_TOKENS: 'gen_ai.usage.input_tokens',
41
+ OUTPUT_TOKENS: 'gen_ai.usage.output_tokens',
42
+ };
43
+ /**
44
+ * OTel GenAI core attribute names
45
+ * https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
46
+ */
47
+ export const GENAI_CORE_ATTRIBUTES = {
48
+ OPERATION_NAME: 'gen_ai.operation.name',
49
+ PROVIDER_NAME: 'gen_ai.provider.name',
50
+ SYSTEM: 'gen_ai.system',
51
+ CONVERSATION_ID: 'gen_ai.conversation.id',
52
+ };
5
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgIH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,mBAAmB;IAC/B,iBAAiB,EAAE,0BAA0B;CACrC,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,qBAAqB;IACnC,SAAS,EAAE,kBAAkB;CACrB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,4BAA4B;IACzC,UAAU,EAAE,2BAA2B;CAC/B,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,KAAK,EAAE,uBAAuB;IAC9B,cAAc,EAAE,gCAAgC;CACxC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,2BAA2B;IACzC,aAAa,EAAE,4BAA4B;CACnC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,sBAAsB;IACrC,MAAM,EAAE,eAAe;IACvB,eAAe,EAAE,wBAAwB;CACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/local-jsonl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EAOpB,eAAe,EACf,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAufpB,qBAAa,iBAAkB,YAAW,gBAAgB;IACxD,IAAI,SAAiB;IACrB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,UAAU,CAAU;gBAEhB,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAc;IAK7D;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;IASrE;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBb,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAoI7D,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwHzD,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAkF3E,OAAO,CAAC,SAAS;IA4FjB,OAAO,CAAC,mBAAmB;IAO3B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAuBf,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA2GlE,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA8B1E;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAK5E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtE;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIhF;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,IAAI,SAAqB;IACzB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAsD;gBAE7D,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAc;IAKpD,cAAc,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAE,CAAC;IAI/D,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwB7D,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwBzD,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAarE,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBlE,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAyBjJ;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;IAkCrE;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAK5E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtE;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIhF"}
1
+ {"version":3,"file":"local-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/local-jsonl.ts"],"names":[],"mappings":"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"}
@@ -424,7 +424,7 @@ export class LocalJsonlBackend {
424
424
  logTiming();
425
425
  return cached;
426
426
  }
427
- const files = getFilesInRange(this.telemetryDir, /traces-\d{4}-\d{2}-\d{2}\.jsonl$/, options.startDate, options.endDate);
427
+ const files = getFilesInRange(this.telemetryDir, /traces-\d{4}-\d{2}-\d{2}\.jsonl(\.gz)?$/, options.startDate, options.endDate);
428
428
  const results = [];
429
429
  const limit = options.limit || 100;
430
430
  const offset = options.offset || 0;
@@ -481,6 +481,19 @@ export class LocalJsonlBackend {
481
481
  if (!applyNumericFilters(span.attributes, options.numericFilter))
482
482
  return false;
483
483
  }
484
+ // OTel GenAI agent/tool filters
485
+ if (options.agentId && span.attributes?.['gen_ai.agent.id'] !== options.agentId)
486
+ return false;
487
+ if (options.agentName && span.attributes?.['gen_ai.agent.name'] !== options.agentName)
488
+ return false;
489
+ if (options.toolName && span.attributes?.['gen_ai.tool.name'] !== options.toolName)
490
+ return false;
491
+ if (options.toolCallId && span.attributes?.['gen_ai.tool.call.id'] !== options.toolCallId)
492
+ return false;
493
+ if (options.toolType && span.attributes?.['gen_ai.tool.type'] !== options.toolType)
494
+ return false;
495
+ if (options.operationName && span.attributes?.['gen_ai.operation.name'] !== options.operationName)
496
+ return false;
484
497
  return true;
485
498
  };
486
499
  for (const file of files) {
@@ -552,7 +565,7 @@ export class LocalJsonlBackend {
552
565
  logTiming();
553
566
  return cached;
554
567
  }
555
- const files = getFilesInRange(this.telemetryDir, /logs-\d{4}-\d{2}-\d{2}\.jsonl$/, options.startDate, options.endDate);
568
+ const files = getFilesInRange(this.telemetryDir, /logs-\d{4}-\d{2}-\d{2}\.jsonl(\.gz)?$/, options.startDate, options.endDate);
556
569
  const results = [];
557
570
  const limit = options.limit || 100;
558
571
  const offset = options.offset || 0;
@@ -667,7 +680,7 @@ export class LocalJsonlBackend {
667
680
  logTiming();
668
681
  return cached;
669
682
  }
670
- const files = getFilesInRange(this.telemetryDir, /metrics-\d{4}-\d{2}-\d{2}\.jsonl$/, options.startDate, options.endDate);
683
+ const files = getFilesInRange(this.telemetryDir, /metrics-\d{4}-\d{2}-\d{2}\.jsonl(\.gz)?$/, options.startDate, options.endDate);
671
684
  const results = [];
672
685
  const limit = options.limit || 100;
673
686
  const offset = options.offset || 0;
@@ -839,7 +852,7 @@ export class LocalJsonlBackend {
839
852
  logTiming();
840
853
  return cached;
841
854
  }
842
- const files = getFilesInRange(this.telemetryDir, /llm-events-\d{4}-\d{2}-\d{2}\.jsonl$/, options.startDate, options.endDate);
855
+ const files = getFilesInRange(this.telemetryDir, /llm-events-\d{4}-\d{2}-\d{2}\.jsonl(\.gz)?$/, options.startDate, options.endDate);
843
856
  const results = [];
844
857
  const limit = options.limit || 100;
845
858
  const offset = options.offset || 0;
@@ -855,10 +868,23 @@ export class LocalJsonlBackend {
855
868
  return false;
856
869
  }
857
870
  if (options.provider) {
858
- const provider = event.attributes?.['gen_ai.system'] || event.attributes?.['provider'];
871
+ // OTel GenAI compliant: gen_ai.provider.name -> gen_ai.system -> provider
872
+ const provider = event.attributes?.['gen_ai.provider.name'] ||
873
+ event.attributes?.['gen_ai.system'] ||
874
+ event.attributes?.['provider'];
859
875
  if (provider !== options.provider)
860
876
  return false;
861
877
  }
878
+ if (options.operationName) {
879
+ const opName = event.attributes?.['gen_ai.operation.name'];
880
+ if (opName !== options.operationName)
881
+ return false;
882
+ }
883
+ if (options.conversationId) {
884
+ const convId = event.attributes?.['gen_ai.conversation.id'];
885
+ if (convId !== options.conversationId)
886
+ return false;
887
+ }
862
888
  if (options.search) {
863
889
  const searchLower = options.search.toLowerCase();
864
890
  const attrStr = JSON.stringify(event.attributes).toLowerCase();