|
279 | 279 | }, |
280 | 280 | { |
281 | 281 | "datasource": { "type": "loki", "uid": "loki" }, |
282 | | - "description": "Application events: request lifecycle, errors, business events. Drizzle's per-query SQL logs are filtered out — see the next panel for those. Click a line to expand structured metadata (trace_id, requestId).", |
| 282 | + "description": "Application events: request lifecycle, errors, business events. Drizzle's per-query SQL logs are filtered out — see the next panel for those. Click a line to expand structured metadata: `trace_id` and `userId` are clickable and open the matching GlitchTip search in a new tab.", |
| 283 | + "fieldConfig": { |
| 284 | + "defaults": {}, |
| 285 | + "overrides": [ |
| 286 | + { |
| 287 | + "matcher": { "id": "byName", "options": "trace_id" }, |
| 288 | + "properties": [ |
| 289 | + { |
| 290 | + "id": "links", |
| 291 | + "value": [ |
| 292 | + { |
| 293 | + "title": "Search this trace in GlitchTip", |
| 294 | + "url": "${glitchtip_url}/${glitchtip_org}/issues/?query=trace_id%3A${__value.raw}", |
| 295 | + "targetBlank": true |
| 296 | + } |
| 297 | + ] |
| 298 | + } |
| 299 | + ] |
| 300 | + }, |
| 301 | + { |
| 302 | + "matcher": { "id": "byName", "options": "userId" }, |
| 303 | + "properties": [ |
| 304 | + { |
| 305 | + "id": "links", |
| 306 | + "value": [ |
| 307 | + { |
| 308 | + "title": "Search this user in GlitchTip", |
| 309 | + "url": "${glitchtip_url}/${glitchtip_org}/issues/?query=user.id%3A${__value.raw}", |
| 310 | + "targetBlank": true |
| 311 | + } |
| 312 | + ] |
| 313 | + } |
| 314 | + ] |
| 315 | + }, |
| 316 | + { |
| 317 | + "matcher": { "id": "byName", "options": "requestId" }, |
| 318 | + "properties": [ |
| 319 | + { |
| 320 | + "id": "links", |
| 321 | + "value": [ |
| 322 | + { |
| 323 | + "title": "Filter Loki to this request", |
| 324 | + "url": "/explore?left=%7B%22datasource%22%3A%22loki%22%2C%22queries%22%3A%5B%7B%22refId%22%3A%22A%22%2C%22expr%22%3A%22%7Bcompose_service%3D~%5C%22api-dev%7Capi%5C%22%7D%20%7C%3D%20%5C%22${__value.raw}%5C%22%22%7D%5D%7D", |
| 325 | + "targetBlank": true |
| 326 | + } |
| 327 | + ] |
| 328 | + } |
| 329 | + ] |
| 330 | + } |
| 331 | + ] |
| 332 | + }, |
283 | 333 | "gridPos": { "h": 14, "w": 24, "x": 0, "y": 20 }, |
284 | 334 | "id": 8, |
285 | 335 | "options": { |
|
331 | 381 | "refresh": "10s", |
332 | 382 | "schemaVersion": 39, |
333 | 383 | "tags": ["boringstack", "api", "logs"], |
334 | | - "templating": { "list": [] }, |
| 384 | + "templating": { |
| 385 | + "list": [ |
| 386 | + { |
| 387 | + "current": { "text": "http://glitchtip.localhost", "value": "http://glitchtip.localhost" }, |
| 388 | + "hide": 0, |
| 389 | + "label": "GlitchTip URL", |
| 390 | + "name": "glitchtip_url", |
| 391 | + "options": [{ "selected": true, "text": "http://glitchtip.localhost", "value": "http://glitchtip.localhost" }], |
| 392 | + "query": "http://glitchtip.localhost", |
| 393 | + "skipUrlSync": false, |
| 394 | + "type": "textbox" |
| 395 | + }, |
| 396 | + { |
| 397 | + "current": { "text": "local", "value": "local" }, |
| 398 | + "hide": 0, |
| 399 | + "label": "GlitchTip org slug", |
| 400 | + "name": "glitchtip_org", |
| 401 | + "options": [{ "selected": true, "text": "local", "value": "local" }], |
| 402 | + "query": "local", |
| 403 | + "skipUrlSync": false, |
| 404 | + "type": "textbox" |
| 405 | + } |
| 406 | + ] |
| 407 | + }, |
335 | 408 | "time": { "from": "now-30m", "to": "now" }, |
336 | 409 | "timepicker": {}, |
337 | 410 | "timezone": "", |
|
0 commit comments