observability-toolkit 1.6.0 → 1.8.2
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.
- package/README.md +221 -91
- package/dist/backends/index.d.ts +146 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +65 -1
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/local-jsonl-boolean-search.test.js +1 -23
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl.d.ts +4 -1
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +216 -6
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +715 -26
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api.d.ts +32 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +237 -33
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.js +410 -63
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/constants.d.ts +16 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +121 -5
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +202 -15
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/error-sanitizer.d.ts +57 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.js +197 -0
- package/dist/lib/error-sanitizer.js.map +1 -0
- package/dist/lib/error-sanitizer.test.d.ts +8 -0
- package/dist/lib/error-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.test.js +342 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -0
- package/dist/lib/file-utils.d.ts +210 -0
- package/dist/lib/file-utils.d.ts.map +1 -1
- package/dist/lib/file-utils.js +529 -14
- package/dist/lib/file-utils.js.map +1 -1
- package/dist/lib/file-utils.test.js +657 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.d.ts +19 -1
- package/dist/lib/indexer.d.ts.map +1 -1
- package/dist/lib/indexer.js +84 -8
- package/dist/lib/indexer.js.map +1 -1
- package/dist/lib/indexer.test.js +187 -16
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +98 -0
- package/dist/lib/input-validator.d.ts.map +1 -0
- package/dist/lib/input-validator.js +245 -0
- package/dist/lib/input-validator.js.map +1 -0
- package/dist/lib/input-validator.test.d.ts +2 -0
- package/dist/lib/input-validator.test.d.ts.map +1 -0
- package/dist/lib/input-validator.test.js +287 -0
- package/dist/lib/input-validator.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +95 -0
- package/dist/lib/query-sanitizer.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.js +187 -0
- package/dist/lib/query-sanitizer.js.map +1 -0
- package/dist/lib/query-sanitizer.test.d.ts +5 -0
- package/dist/lib/query-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.test.js +299 -0
- package/dist/lib/query-sanitizer.test.js.map +1 -0
- package/dist/server.d.ts +49 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +97 -13
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +202 -0
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/file-utils.d.ts +26 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -0
- package/dist/test-helpers/file-utils.js +43 -0
- package/dist/test-helpers/file-utils.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +28 -0
- package/dist/test-helpers/mock-backends.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.js +31 -0
- package/dist/test-helpers/mock-backends.js.map +1 -0
- package/dist/tools/health-check.js +1 -1
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +183 -0
- package/dist/tools/query-evaluations.d.ts.map +1 -0
- package/dist/tools/query-evaluations.js +351 -0
- package/dist/tools/query-evaluations.js.map +1 -0
- package/dist/tools/query-evaluations.test.d.ts +5 -0
- package/dist/tools/query-evaluations.test.d.ts.map +1 -0
- package/dist/tools/query-evaluations.test.js +743 -0
- package/dist/tools/query-evaluations.test.js.map +1 -0
- package/dist/tools/query-llm-events.d.ts +62 -11
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +97 -37
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +253 -0
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +32 -18
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +77 -44
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +226 -64
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +24 -24
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +102 -54
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +35 -36
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +66 -22
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +86 -42
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +458 -36
- package/dist/tools/query-traces.test.js.map +1 -1
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -18,134 +18,266 @@ claude mcp add observability-toolkit -- node ~/.claude/mcp-servers/observability
|
|
|
18
18
|
|
|
19
19
|
| Tool | Description |
|
|
20
20
|
|------|-------------|
|
|
21
|
-
| `obs_query_traces` | Query traces
|
|
22
|
-
| `obs_query_metrics` | Query metrics with
|
|
23
|
-
| `obs_query_logs` | Query logs
|
|
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
|
-
| `
|
|
25
|
+
| `obs_query_evaluations` | Query evaluation events with aggregations and groupBy |
|
|
26
|
+
| `obs_health_check` | Check telemetry system health with cache statistics |
|
|
26
27
|
| `obs_context_stats` | Get context window utilization stats |
|
|
27
28
|
| `obs_get_trace_url` | Get SigNoz trace viewer URL (requires SigNoz) |
|
|
28
|
-
| `obs_setup_claudeignore` | Add entries to .claudeignore
|
|
29
|
+
| `obs_setup_claudeignore` | Add entries to .claudeignore |
|
|
29
30
|
|
|
30
31
|
## Configuration
|
|
31
32
|
|
|
32
|
-
| Variable | Description |
|
|
33
|
-
|
|
34
|
-
| `TELEMETRY_DIR` | Local telemetry directory |
|
|
35
|
-
| `SIGNOZ_URL` | SigNoz instance URL |
|
|
36
|
-
| `SIGNOZ_API_KEY` | SigNoz API key |
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
| Variable | Description | Default |
|
|
34
|
+
|----------|-------------|---------|
|
|
35
|
+
| `TELEMETRY_DIR` | Local telemetry directory | `~/.claude/telemetry` |
|
|
36
|
+
| `SIGNOZ_URL` | SigNoz instance URL | - |
|
|
37
|
+
| `SIGNOZ_API_KEY` | SigNoz API key | - |
|
|
38
|
+
| `CACHE_TTL_MS` | Query cache TTL in milliseconds | `60000` |
|
|
39
|
+
| `RETENTION_DAYS` | Days to retain telemetry files | `7` |
|
|
39
40
|
|
|
40
41
|
## Usage Examples
|
|
41
42
|
|
|
42
|
-
### Query
|
|
43
|
+
### Query Traces
|
|
43
44
|
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
obs_query_traces({
|
|
47
|
-
obs_query_traces({ serviceName: "claude-code", minDurationMs: 100 })
|
|
48
|
-
obs_query_traces({ attributeFilter: { "agent.source_type": "lazy" } })
|
|
49
|
-
```
|
|
45
|
+
```javascript
|
|
46
|
+
// Basic query
|
|
47
|
+
obs_query_traces({ limit: 10 })
|
|
50
48
|
|
|
51
|
-
|
|
49
|
+
// Filter by trace ID
|
|
50
|
+
obs_query_traces({ traceId: "abc123..." })
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
// Filter by service and duration
|
|
53
|
+
obs_query_traces({ serviceName: "claude-code", minDurationMs: 100 })
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
// Regex pattern matching
|
|
56
|
+
obs_query_traces({ spanNameRegex: "^http\\..*" })
|
|
57
|
+
|
|
58
|
+
// Numeric attribute filtering
|
|
59
|
+
obs_query_traces({
|
|
60
|
+
numericFilter: [
|
|
61
|
+
{ attribute: "http.status_code", operator: "gte", value: 400 }
|
|
62
|
+
]
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
// Existence checks
|
|
66
|
+
obs_query_traces({
|
|
67
|
+
attributeExists: ["error.message"],
|
|
68
|
+
attributeNotExists: ["http.response.body"]
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
// OTel GenAI agent/tool filters
|
|
72
|
+
obs_query_traces({ agentName: "Explore", toolName: "Read" })
|
|
73
|
+
obs_query_traces({ operationName: "execute_tool", toolCallId: "toolu_123" })
|
|
74
|
+
```
|
|
67
75
|
|
|
68
|
-
### Query
|
|
76
|
+
### Query Logs
|
|
69
77
|
|
|
70
|
-
```
|
|
78
|
+
```javascript
|
|
79
|
+
// Basic severity filter
|
|
71
80
|
obs_query_logs({ severity: "ERROR", limit: 20 })
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
|
|
82
|
+
// Boolean search (AND)
|
|
83
|
+
obs_query_logs({
|
|
84
|
+
searchTerms: ["timeout", "connection"],
|
|
85
|
+
searchOperator: "AND"
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
// Boolean search (OR)
|
|
89
|
+
obs_query_logs({
|
|
90
|
+
searchTerms: ["error", "warning", "critical"],
|
|
91
|
+
searchOperator: "OR"
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
// Field extraction from JSON logs
|
|
95
|
+
obs_query_logs({
|
|
96
|
+
extractFields: ["user.id", "request.method", "response.status"]
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
// Exclude patterns
|
|
100
|
+
obs_query_logs({
|
|
101
|
+
search: "error",
|
|
102
|
+
excludeSearch: "health-check"
|
|
103
|
+
})
|
|
74
104
|
```
|
|
75
105
|
|
|
76
|
-
### Query
|
|
106
|
+
### Query Metrics
|
|
77
107
|
|
|
78
|
-
```
|
|
108
|
+
```javascript
|
|
109
|
+
// Basic query
|
|
79
110
|
obs_query_metrics({ metricName: "session.context.size" })
|
|
80
|
-
obs_query_metrics({ metricName: "gen_ai.client.token.usage", aggregation: "sum" })
|
|
81
|
-
```
|
|
82
111
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
112
|
+
// Aggregations
|
|
113
|
+
obs_query_metrics({ metricName: "http.duration", aggregation: "avg" })
|
|
114
|
+
obs_query_metrics({ metricName: "http.duration", aggregation: "p95" })
|
|
115
|
+
obs_query_metrics({ metricName: "requests.count", aggregation: "rate" })
|
|
116
|
+
|
|
117
|
+
// Time bucket grouping
|
|
118
|
+
obs_query_metrics({
|
|
119
|
+
metricName: "token.usage",
|
|
120
|
+
aggregation: "sum",
|
|
121
|
+
timeBucket: "1h",
|
|
122
|
+
groupBy: ["model"]
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
// Percentiles
|
|
126
|
+
obs_query_metrics({ metricName: "latency", aggregation: "p99" })
|
|
89
127
|
```
|
|
90
128
|
|
|
91
|
-
###
|
|
129
|
+
### Query LLM Events
|
|
92
130
|
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
|
|
131
|
+
```javascript
|
|
132
|
+
// Basic query
|
|
133
|
+
obs_query_llm_events({ limit: 20 })
|
|
96
134
|
|
|
97
|
-
|
|
135
|
+
// Filter by model and provider
|
|
136
|
+
obs_query_llm_events({ model: "claude-3-opus", provider: "anthropic" })
|
|
98
137
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
138
|
+
// OTel GenAI operation types
|
|
139
|
+
obs_query_llm_events({ operationName: "chat" })
|
|
140
|
+
obs_query_llm_events({ operationName: "invoke_agent" })
|
|
103
141
|
|
|
104
|
-
|
|
142
|
+
// Filter by conversation
|
|
143
|
+
obs_query_llm_events({ conversationId: "conv-abc123" })
|
|
105
144
|
|
|
106
|
-
|
|
107
|
-
|
|
145
|
+
// Combine filters
|
|
146
|
+
obs_query_llm_events({
|
|
147
|
+
operationName: "chat",
|
|
148
|
+
provider: "anthropic",
|
|
149
|
+
conversationId: "conv-abc123"
|
|
150
|
+
})
|
|
108
151
|
```
|
|
109
152
|
|
|
110
|
-
###
|
|
153
|
+
### Health Check with Cache Stats
|
|
111
154
|
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
155
|
+
```javascript
|
|
156
|
+
obs_health_check({ verbose: true })
|
|
157
|
+
|
|
158
|
+
// Returns:
|
|
159
|
+
{
|
|
160
|
+
"status": "ok",
|
|
161
|
+
"backends": { ... },
|
|
162
|
+
"cache": {
|
|
163
|
+
"traces": { "hits": 10, "misses": 5, "hitRate": 0.67, "size": 15, "evictions": 0 },
|
|
164
|
+
"logs": { "hits": 8, "misses": 12, "hitRate": 0.4, "size": 20, "evictions": 2 },
|
|
165
|
+
"metrics": { "hits": 0, "misses": 0, "hitRate": 0, "size": 0, "evictions": 0 },
|
|
166
|
+
"llmEvents": { "hits": 0, "misses": 0, "hitRate": 0, "size": 0, "evictions": 0 }
|
|
167
|
+
}
|
|
168
|
+
}
|
|
117
169
|
```
|
|
118
170
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
171
|
+
## Features
|
|
172
|
+
|
|
173
|
+
### Query Capabilities
|
|
174
|
+
|
|
175
|
+
| Feature | Description |
|
|
176
|
+
|---------|-------------|
|
|
177
|
+
| Percentile Aggregations | p50, p95, p99 for metrics |
|
|
178
|
+
| Time Bucket Grouping | 1m, 5m, 1h, 1d buckets for trend analysis |
|
|
179
|
+
| Rate Calculations | Per-second rate of change |
|
|
180
|
+
| Numeric Operators | gt, gte, lt, lte, eq for attribute filtering |
|
|
181
|
+
| Regex Patterns | Advanced span name filtering |
|
|
182
|
+
| Boolean Search | AND/OR operators for log queries |
|
|
183
|
+
| Field Extraction | Extract JSON paths from structured logs |
|
|
184
|
+
| Negation Filters | Exclude matching spans/logs |
|
|
185
|
+
| Existence Checks | Filter by attribute presence |
|
|
186
|
+
|
|
187
|
+
### OTel Compliance
|
|
188
|
+
|
|
189
|
+
| Feature | Description |
|
|
190
|
+
|---------|-------------|
|
|
191
|
+
| severityNumber | Standard OTel severity levels |
|
|
192
|
+
| statusCode | UNSET, OK, ERROR for spans |
|
|
193
|
+
| Histogram Buckets | Full histogram distribution support |
|
|
194
|
+
| InstrumentationScope | Library/module metadata |
|
|
195
|
+
| Span Links | Cross-trace relationships |
|
|
196
|
+
| Exemplars | Metric-to-trace correlation |
|
|
197
|
+
| Aggregation Temporality | DELTA, CUMULATIVE support |
|
|
198
|
+
|
|
199
|
+
### OTel GenAI Semantic Conventions (10/10 compliance)
|
|
200
|
+
|
|
201
|
+
| Feature | Description |
|
|
202
|
+
|---------|-------------|
|
|
203
|
+
| `gen_ai.operation.name` | Filter by chat, embeddings, invoke_agent, execute_tool |
|
|
204
|
+
| `gen_ai.provider.name` | Provider fallback: gen_ai.provider.name → gen_ai.system → provider |
|
|
205
|
+
| `gen_ai.conversation.id` | Filter LLM events by conversation ID |
|
|
206
|
+
| `gen_ai.agent.id/name` | Filter traces by agent attributes |
|
|
207
|
+
| `gen_ai.tool.name/call.id` | Filter traces by tool attributes |
|
|
208
|
+
| `gen_ai.response.model` | Actual model that responded |
|
|
209
|
+
| `gen_ai.response.finish_reasons` | Why generation stopped |
|
|
210
|
+
| `gen_ai.request.temperature` | Sampling temperature |
|
|
211
|
+
| `gen_ai.request.max_tokens` | Maximum output tokens |
|
|
212
|
+
| Percentiles | p50, p95, p99, rate aggregations |
|
|
213
|
+
|
|
214
|
+
### Performance
|
|
215
|
+
|
|
216
|
+
| Feature | Description |
|
|
217
|
+
|---------|-------------|
|
|
218
|
+
| Query Caching | LRU cache with configurable TTL |
|
|
219
|
+
| File Indexing | .idx sidecars for fast lookups |
|
|
220
|
+
| Gzip Support | Transparent decompression of .jsonl.gz files |
|
|
221
|
+
| BatchWriter | Buffered writes to reduce I/O |
|
|
222
|
+
| Streaming | Early termination for large files |
|
|
223
|
+
| Parallel Queries | Concurrent multi-directory queries |
|
|
224
|
+
| Cursor Pagination | Efficient large result set handling |
|
|
225
|
+
|
|
226
|
+
### Internal Observability
|
|
227
|
+
|
|
228
|
+
| Feature | Description |
|
|
229
|
+
|---------|-------------|
|
|
230
|
+
| Cache Metrics | Hit/miss/eviction tracking |
|
|
231
|
+
| Query Timing | Slow query warnings (>500ms) |
|
|
232
|
+
| Circuit Breaker Logging | State transition visibility |
|
|
233
|
+
| Health Check Stats | Cache statistics in health output |
|
|
234
|
+
|
|
235
|
+
### Security
|
|
236
|
+
|
|
237
|
+
| Feature | Description |
|
|
238
|
+
|---------|-------------|
|
|
239
|
+
| Query Escaping | ClickHouse-specific escaping, 22-pattern blocklist |
|
|
240
|
+
| Memory Limits | MAX_RESULTS_IN_MEMORY=10000, streaming aggregation |
|
|
241
|
+
| Input Validation | limit≤1000, date range≤365 days, regex limits |
|
|
242
|
+
| Type Safety | NaN/Infinity rejection, explicit type assertions |
|
|
243
|
+
|
|
244
|
+
See [docs/security.md](docs/security.md) for details.
|
|
124
245
|
|
|
125
246
|
## Data Sources
|
|
126
247
|
|
|
127
248
|
### Local JSONL (Default)
|
|
128
249
|
|
|
129
|
-
|
|
250
|
+
Scans multiple telemetry directories:
|
|
130
251
|
- **Global**: `~/.claude/telemetry/` (always checked)
|
|
131
|
-
- **Project-local**: `.claude/telemetry/`, `telemetry/`, `.telemetry/`
|
|
132
|
-
|
|
133
|
-
This allows querying both global Claude Code telemetry and project-specific telemetry.
|
|
252
|
+
- **Project-local**: `.claude/telemetry/`, `telemetry/`, `.telemetry/`
|
|
134
253
|
|
|
135
|
-
File patterns:
|
|
136
|
-
- `traces-YYYY-MM-DD.jsonl`
|
|
137
|
-
- `logs-YYYY-MM-DD.jsonl`
|
|
138
|
-
- `metrics-YYYY-MM-DD.jsonl`
|
|
139
|
-
- `llm-events-YYYY-MM-DD.jsonl`
|
|
254
|
+
File patterns (supports gzip compression):
|
|
255
|
+
- `traces-YYYY-MM-DD.jsonl` / `.jsonl.gz`
|
|
256
|
+
- `logs-YYYY-MM-DD.jsonl` / `.jsonl.gz`
|
|
257
|
+
- `metrics-YYYY-MM-DD.jsonl` / `.jsonl.gz`
|
|
258
|
+
- `llm-events-YYYY-MM-DD.jsonl` / `.jsonl.gz`
|
|
140
259
|
|
|
141
260
|
### SigNoz Cloud (Optional)
|
|
142
261
|
|
|
143
|
-
When
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
262
|
+
When configured, queries SigNoz Cloud API with:
|
|
263
|
+
- Circuit breaker protection
|
|
264
|
+
- Cursor-based pagination
|
|
265
|
+
- Response time tracking
|
|
147
266
|
|
|
148
|
-
|
|
267
|
+
## OTLP Export
|
|
268
|
+
|
|
269
|
+
Export data in OpenTelemetry format:
|
|
270
|
+
|
|
271
|
+
```javascript
|
|
272
|
+
// Export traces
|
|
273
|
+
const otlpTraces = await backend.exportTracesOTLP({ startDate: "2026-01-28" });
|
|
274
|
+
|
|
275
|
+
// Export logs
|
|
276
|
+
const otlpLogs = await backend.exportLogsOTLP({ severity: "ERROR" });
|
|
277
|
+
|
|
278
|
+
// Export metrics
|
|
279
|
+
const otlpMetrics = await backend.exportMetricsOTLP({ metricName: "http.duration" });
|
|
280
|
+
```
|
|
149
281
|
|
|
150
282
|
## Development
|
|
151
283
|
|
|
@@ -153,15 +285,13 @@ Use `backend: "signoz"` in queries to explicitly use SigNoz, or `backend: "auto"
|
|
|
153
285
|
cd ~/.claude/mcp-servers/observability-toolkit
|
|
154
286
|
npm install
|
|
155
287
|
npm run build
|
|
156
|
-
npm test #
|
|
288
|
+
npm test # 1152 tests
|
|
157
289
|
npm run start
|
|
158
290
|
```
|
|
159
291
|
|
|
160
292
|
## Documentation
|
|
161
293
|
|
|
162
|
-
- [
|
|
163
|
-
- [
|
|
164
|
-
- [
|
|
165
|
-
- [
|
|
166
|
-
|
|
167
|
-
|
|
294
|
+
- [CHANGELOG.md](CHANGELOG.md) - Version history and changes
|
|
295
|
+
- [docs/security.md](docs/security.md) - Security controls and hardening
|
|
296
|
+
- [docs/ROADMAP.md](docs/ROADMAP.md) - Feature roadmap
|
|
297
|
+
- [docs/SESSION_HISTORY.md](docs/SESSION_HISTORY.md) - Development session logs
|
package/dist/backends/index.d.ts
CHANGED
|
@@ -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,95 @@ 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;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* OTel GenAI evaluation attribute names
|
|
249
|
+
* https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/
|
|
250
|
+
*/
|
|
251
|
+
export declare const GENAI_EVALUATION_ATTRIBUTES: {
|
|
252
|
+
readonly NAME: "gen_ai.evaluation.name";
|
|
253
|
+
readonly SCORE_VALUE: "gen_ai.evaluation.score.value";
|
|
254
|
+
readonly SCORE_LABEL: "gen_ai.evaluation.score.label";
|
|
255
|
+
readonly EXPLANATION: "gen_ai.evaluation.explanation";
|
|
256
|
+
/** Custom extension: Score unit/scale (e.g., "ratio_0_1", "percentage") */
|
|
257
|
+
readonly SCORE_UNIT: "gen_ai.evaluation.score.unit";
|
|
258
|
+
/** Custom extension: Identity of the evaluator (model, human, system) */
|
|
259
|
+
readonly EVALUATOR: "gen_ai.evaluation.evaluator";
|
|
260
|
+
/** Custom extension: Type of evaluator */
|
|
261
|
+
readonly EVALUATOR_TYPE: "gen_ai.evaluation.evaluator.type";
|
|
262
|
+
};
|
|
263
|
+
/** Evaluator types for LLM quality evaluation */
|
|
264
|
+
export type EvaluatorType = 'llm' | 'human' | 'rule' | 'classifier';
|
|
265
|
+
/**
|
|
266
|
+
* Normalized evaluation result from gen_ai.evaluation.result events
|
|
267
|
+
*/
|
|
268
|
+
export interface EvaluationResult {
|
|
269
|
+
/** ISO timestamp of the evaluation */
|
|
270
|
+
timestamp: string;
|
|
271
|
+
/** Evaluation metric name (gen_ai.evaluation.name) - required */
|
|
272
|
+
evaluationName: string;
|
|
273
|
+
/** Numeric score (gen_ai.evaluation.score.value) */
|
|
274
|
+
scoreValue?: number;
|
|
275
|
+
/** Human-readable score label (gen_ai.evaluation.score.label) */
|
|
276
|
+
scoreLabel?: string;
|
|
277
|
+
/** Score unit/scale (e.g., "ratio_0_1", "percentage") */
|
|
278
|
+
scoreUnit?: string;
|
|
279
|
+
/** Free-form explanation (gen_ai.evaluation.explanation) */
|
|
280
|
+
explanation?: string;
|
|
281
|
+
/** Identity of the evaluator - model name, human ID, or system name */
|
|
282
|
+
evaluator?: string;
|
|
283
|
+
/** Type of evaluator (llm, human, rule, classifier) */
|
|
284
|
+
evaluatorType?: EvaluatorType;
|
|
285
|
+
/** Response ID for correlation (gen_ai.response.id) */
|
|
286
|
+
responseId?: string;
|
|
287
|
+
/** Trace ID for correlation */
|
|
288
|
+
traceId?: string;
|
|
289
|
+
/** Span ID for correlation */
|
|
290
|
+
spanId?: string;
|
|
291
|
+
/** Session ID for session-scoped queries */
|
|
292
|
+
sessionId?: string;
|
|
293
|
+
}
|
|
294
|
+
/** Aggregation functions for evaluation scores */
|
|
295
|
+
export type EvaluationAggregation = 'avg' | 'min' | 'max' | 'count' | 'p50' | 'p95' | 'p99';
|
|
296
|
+
/** Fields that can be used for groupBy in evaluation queries */
|
|
297
|
+
export type EvaluationGroupByField = 'evaluationName' | 'scoreLabel' | 'evaluator';
|
|
298
|
+
export interface EvaluationQueryOptions extends QueryOptions {
|
|
299
|
+
/** Filter by evaluation metric name (gen_ai.evaluation.name) */
|
|
300
|
+
evaluationName?: string;
|
|
301
|
+
/** Minimum score threshold */
|
|
302
|
+
scoreMin?: number;
|
|
303
|
+
/** Maximum score threshold */
|
|
304
|
+
scoreMax?: number;
|
|
305
|
+
/** Filter by score label (e.g., "pass", "fail", "relevant") */
|
|
306
|
+
scoreLabel?: string;
|
|
307
|
+
/** Filter by evaluator identity (exact match, e.g., "gpt-4-as-judge") */
|
|
308
|
+
evaluator?: string;
|
|
309
|
+
/** Filter by evaluator type (llm, human, rule, classifier) */
|
|
310
|
+
evaluatorType?: EvaluatorType;
|
|
311
|
+
/** Filter by response ID for correlation */
|
|
312
|
+
responseId?: string;
|
|
313
|
+
/** Filter by trace ID */
|
|
314
|
+
traceId?: string;
|
|
315
|
+
/** Filter by session ID */
|
|
316
|
+
sessionId?: string;
|
|
317
|
+
/** Aggregation function for scores */
|
|
318
|
+
aggregation?: EvaluationAggregation;
|
|
319
|
+
/** Group aggregations by these fields */
|
|
320
|
+
groupBy?: EvaluationGroupByField[];
|
|
176
321
|
}
|
|
177
322
|
export type { OTLPTraceExport, OTLPLogExport, OTLPMetricExport, } from '../lib/otlp-export.js';
|
|
178
323
|
export interface TelemetryBackend {
|
|
@@ -181,6 +326,7 @@ export interface TelemetryBackend {
|
|
|
181
326
|
queryLogs(options: LogQueryOptions): Promise<LogRecord[]>;
|
|
182
327
|
queryMetrics(options: MetricQueryOptions): Promise<MetricDataPoint[]>;
|
|
183
328
|
queryLLMEvents?(options: LLMEventQueryOptions): Promise<LLMEvent[]>;
|
|
329
|
+
queryEvaluations?(options: EvaluationQueryOptions): Promise<EvaluationResult[]>;
|
|
184
330
|
healthCheck(): Promise<{
|
|
185
331
|
status: 'ok' | 'error';
|
|
186
332
|
message?: string;
|
|
@@ -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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"}
|
package/dist/backends/index.js
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Backend interface for telemetry data sources
|
|
3
3
|
*/
|
|
4
|
-
|
|
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
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* OTel GenAI evaluation attribute names
|
|
55
|
+
* https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/
|
|
56
|
+
*/
|
|
57
|
+
export const GENAI_EVALUATION_ATTRIBUTES = {
|
|
58
|
+
NAME: 'gen_ai.evaluation.name',
|
|
59
|
+
SCORE_VALUE: 'gen_ai.evaluation.score.value',
|
|
60
|
+
SCORE_LABEL: 'gen_ai.evaluation.score.label',
|
|
61
|
+
EXPLANATION: 'gen_ai.evaluation.explanation',
|
|
62
|
+
/** Custom extension: Score unit/scale (e.g., "ratio_0_1", "percentage") */
|
|
63
|
+
SCORE_UNIT: 'gen_ai.evaluation.score.unit',
|
|
64
|
+
/** Custom extension: Identity of the evaluator (model, human, system) */
|
|
65
|
+
EVALUATOR: 'gen_ai.evaluation.evaluator',
|
|
66
|
+
/** Custom extension: Type of evaluator */
|
|
67
|
+
EVALUATOR_TYPE: 'gen_ai.evaluation.evaluator.type',
|
|
68
|
+
};
|
|
5
69
|
//# 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;AAqFX;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,+BAA+B;IAC5C,2EAA2E;IAC3E,UAAU,EAAE,8BAA8B;IAC1C,yEAAyE;IACzE,SAAS,EAAE,6BAA6B;IACxC,0CAA0C;IAC1C,cAAc,EAAE,kCAAkC;CAC1C,CAAC"}
|