diff --git a/examples/telemetry/.gitignore b/examples/telemetry/.gitignore new file mode 100644 index 00000000..55163930 --- /dev/null +++ b/examples/telemetry/.gitignore @@ -0,0 +1 @@ +postgres-logs/ diff --git a/examples/telemetry/docker-compose.yml b/examples/telemetry/docker-compose.yml index e4640c06..3426172e 100644 --- a/examples/telemetry/docker-compose.yml +++ b/examples/telemetry/docker-compose.yml @@ -96,7 +96,7 @@ services: POSTGRES_DB: sqlpage volumes: - ./postgres-init:/docker-entrypoint-initdb.d:ro - - postgres-logs:/var/log/postgresql + - ./postgres-logs:/var/log/postgresql:z healthcheck: test: ["CMD-SHELL", "pg_isready -U sqlpage"] interval: 2s @@ -107,7 +107,7 @@ services: user: "0:0" volumes: - ./otel-collector.yaml:/etc/otelcol-contrib/config.yaml:ro - - postgres-logs:/var/log/postgresql:ro + - ./postgres-logs:/var/log/postgresql:ro,z ports: - "4317:4317" - "4318:4318" @@ -155,13 +155,10 @@ services: - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/sqlpage/sqlpage-home.json - GF_NEWS_NEWS_FEED_ENABLED=false volumes: - - ./grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:ro - - ./grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro - - ./grafana:/etc/grafana/provisioning/dashboards/sqlpage:ro + - ./grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:ro,z + - ./grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro,z + - ./grafana:/etc/grafana/provisioning/dashboards/sqlpage:ro,z depends_on: - tempo - loki - prometheus - -volumes: - postgres-logs: diff --git a/examples/telemetry/grafana/sqlpage-home.json b/examples/telemetry/grafana/sqlpage-home.json index 3cd35cb9..5ad05b1e 100644 --- a/examples/telemetry/grafana/sqlpage-home.json +++ b/examples/telemetry/grafana/sqlpage-home.json @@ -15,19 +15,18 @@ } ] }, - "editable": false, + "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": null, "links": [], "panels": [ { - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" + "fieldConfig": { + "defaults": {}, + "overrides": [] }, "gridPos": { - "h": 4, + "h": 5, "w": 24, "x": 0, "y": 0 @@ -42,7 +41,7 @@ "content": "

SQLPage Observability

Open http://localhost and interact with the app. New requests will appear here automatically.

This dashboard shows traces, logs, and application metrics exported by SQLPage. Trace waterfalls link to PostgreSQL logs via trace IDs. Metrics include HTTP durations, DB query latencies, and connection pool states.

", "mode": "html" }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "title": "Overview", "type": "text" }, @@ -63,6 +62,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -79,6 +79,7 @@ "type": "linear" }, "showPoints": "never", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -94,7 +95,7 @@ "steps": [ { "color": "green", - "value": null + "value": 0 } ] }, @@ -106,7 +107,7 @@ "h": 8, "w": 12, "x": 0, - "y": 4 + "y": 5 }, "id": 10, "options": { @@ -117,11 +118,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" } }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "targets": [ { "datasource": { @@ -162,6 +164,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -178,6 +181,7 @@ "type": "linear" }, "showPoints": "never", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -193,7 +197,7 @@ "steps": [ { "color": "green", - "value": null + "value": 0 } ] }, @@ -205,7 +209,7 @@ "h": 8, "w": 12, "x": 12, - "y": 4 + "y": 5 }, "id": 11, "options": { @@ -216,11 +220,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" } }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "targets": [ { "datasource": { @@ -247,7 +252,24 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] } }, "overrides": [ @@ -258,45 +280,17 @@ }, "properties": [ { - "id": "custom.hidden", + "id": "custom.hideFrom.viz", "value": true } ] }, - { - "matcher": { - "id": "byName", - "options": "startTime" - }, - "properties": [ - { - "id": "custom.width", - "value": 190 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "traceService" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, { "matcher": { "id": "byName", "options": "traceName" }, "properties": [ - { - "id": "custom.width", - "value": 520 - }, { "id": "custom.cellOptions", "value": { @@ -330,12 +324,24 @@ { "matcher": { "id": "byName", - "options": "nested" + "options": "Service" }, "properties": [ { - "id": "custom.hidden", - "value": true + "id": "custom.width", + "value": 58 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Start time" + }, + "properties": [ + { + "id": "custom.width", + "value": 204 } ] } @@ -345,17 +351,11 @@ "h": 8, "w": 24, "x": 0, - "y": 12 + "y": 13 }, "id": 2, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": ["sum"], - "show": false - }, "frameIndex": 0, "showHeader": true, "sortBy": [ @@ -365,17 +365,26 @@ } ] }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "targets": [ { "datasource": { "type": "tempo", "uid": "tempo" }, + "filters": [ + { + "id": "57ff7584", + "operator": "=", + "scope": "span" + } + ], "limit": 50, + "metricsQueryType": "range", "query": "{resource.service.name != nil}", "queryType": "traceqlSearch", "refId": "A", + "serviceMapUseNativeHistograms": false, "tableType": "traces" } ], @@ -407,59 +416,36 @@ ], "type": "table" }, - { - "datasource": { - "type": "tempo", - "uid": "tempo" - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 12, - "pluginVersion": "12.4.0", - "targets": [ - { - "datasource": { - "type": "tempo", - "uid": "tempo" - }, - "limit": 20, - "query": "$traceId", - "queryType": "traceql", - "refId": "A", - "tableType": "traces" - } - ], - "timeFrom": "1h", - "title": "Selected Trace", - "type": "traces" - }, { "datasource": { "type": "loki", "uid": "loki" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 10, "w": 12, "x": 0, - "y": 20 + "y": 21 }, "id": 3, "options": { "dedupStrategy": "none", "enableInfiniteScrolling": false, + "enableLogDetails": true, "prettifyLogMessage": false, "showCommonLabels": false, + "showControls": false, "showLabels": true, "showTime": true, "sortOrder": "Descending", + "unwrappedColumns": false, "wrapLogMessage": true }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "targets": [ { "datasource": { @@ -482,24 +468,31 @@ "type": "loki", "uid": "loki" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 10, "w": 12, "x": 12, - "y": 20 + "y": 21 }, "id": 6, "options": { "dedupStrategy": "none", "enableInfiniteScrolling": false, + "enableLogDetails": true, "prettifyLogMessage": false, "showCommonLabels": false, + "showControls": false, "showLabels": true, "showTime": true, "sortOrder": "Descending", + "unwrappedColumns": false, "wrapLogMessage": true }, - "pluginVersion": "12.4.0", + "pluginVersion": "12.4.1", "targets": [ { "datasource": { @@ -518,33 +511,17 @@ "type": "logs" } ], + "preload": false, "refresh": "5s", - "schemaVersion": 41, - "style": "dark", - "tags": ["sqlpage", "tracing", "logs", "metrics"], + "schemaVersion": 42, + "tags": [ + "sqlpage", + "tracing", + "logs", + "metrics" + ], "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "hide": 2, - "label": "Trace ID", - "name": "traceId", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - } - ] + "list": [] }, "time": { "from": "now-1h", @@ -554,5 +531,6 @@ "timezone": "browser", "title": "SQLPage Observability Home", "uid": "sqlpage-tracing-home", - "version": 6 -} + "version": 1, + "weekStart": "" +} \ No newline at end of file