Add Alloy log scraper to local observability stack#4559
Merged
lukemelia merged 2 commits intoApr 29, 2026
Conversation
Picks up where CS-10918 left off: un-comments Alloy in docker-compose, adds alloy/config.alloy that discovers Docker containers via the host socket and ships their stdout into Loki. Locks in the load-bearing label schema (env / service / realm) that staging + production FireLens will need to match. Also ships a minimal loki/config.yaml — the bundled defaults reject log entries older than a few minutes, which generates a 400-storm whenever Alloy first attaches to a long-lived container that's been sitting on a year of stdout. CS-10916 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Observability diff (vs staging)Diff truncated (199289 bytes; limit 60000). Full diff: https://github.com/cardstack/boxel/actions/runs/25082575762 diff --git a/tmp/grafanactl-pull.nnCwcU/Dashboard/a2195b5f-b293-4e12-93d4-4536592de634.json b/tmp/grafanactl-pull.nnCwcU/Dashboard/a2195b5f-b293-4e12-93d4-4536592de634.json
deleted file mode 100644
index d7b1b7b..0000000
--- a/tmp/grafanactl-pull.nnCwcU/Dashboard/a2195b5f-b293-4e12-93d4-4536592de634.json
+++ /dev/null
@@ -1,1023 +0,0 @@
-{
- "apiVersion": "dashboard.grafana.app/v0alpha1",
- "kind": "Dashboard",
- "metadata": {
- "annotations": {},
- "labels": {},
- "name": "a2195b5f-b293-4e12-93d4-4536592de634",
- "namespace": "default"
- },
- "spec": {
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": {
- "type": "grafana",
- "uid": "-- Grafana --"
- },
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations \u0026 Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "fiscalYearStartMonth": 0,
- "graphTooltip": 0,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "max": 100,
- "min": 0,
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 0
- },
- "id": 1,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "$cluster"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": false,
- "metricEditorMode": 0,
- "metricName": "CPUUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "CPU Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "max": 100,
- "min": 0,
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 0
- },
- "id": 2,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "$cluster"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": false,
- "metricEditorMode": 0,
- "metricName": "MemoryUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "Memory Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "gridPos": {
- "h": 7,
- "w": 24,
- "x": 0,
- "y": 7
- },
- "id": 3,
- "options": {
- "dedupStrategy": "none",
- "enableLogDetails": true,
- "prettifyLogMessage": false,
- "showCommonLabels": false,
- "showLabels": false,
- "showTime": true,
- "sortOrder": "Descending",
- "wrapLogMessage": false
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {},
- "expression": "fields @timestamp, @message |\n filter @logStream like \"/$service/\" |\n sort @timestamp desc |\n limit $logslimit",
- "id": "",
- "label": "",
- "logGroups": [
- {
- "arn": "$loggroup",
- "name": "$loggroup"
- }
- ],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "",
- "metricQueryType": 0,
- "namespace": "",
- "period": "",
- "queryMode": "Logs",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average",
- "statsGroups": []
- }
- ],
- "title": "Logs",
- "type": "logs"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 0,
- "y": 14
- },
- "id": 4,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "id": "",
- "label": "Maximum",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "TargetResponseTime",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "Average",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "TargetResponseTime",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average"
- }
- ],
- "title": "Response Time",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "none"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 6,
- "y": 14
- },
- "id": 5,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": false
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "RequestCount",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- }
- ],
- "title": "Request Count",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "5XX"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "red",
- "mode": "fixed"
- }
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "2XX"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "green",
- "mode": "fixed"
- }
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 12,
- "y": 14
- },
- "id": 6,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "2XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_Target_2XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "C",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "4XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_Target_4XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "5XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_Target_5XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- }
- ],
- "title": "Target Response Code",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "5XX"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "red",
- "mode": "fixed"
- }
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 18,
- "y": 14
- },
- "id": 7,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "5XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_ELB_5XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "4XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_ELB_4XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- }
- ],
- "title": "ALB Response Code",
- "type": "timeseries"
- }
- ],
- "refresh": "30s",
- "schemaVersion": 38,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "current": {
- "selected": true,
- "text": "10",
- "value": "10"
- },
- "hide": 0,
- "includeAll": false,
- "label": "Logs Limit",
- "multi": false,
- "name": "logslimit",
- "options": [
- {
- "selected": true,
- "text": "10",
- "value": "10"
- },
- {
- "selected": false,
- "text": "100",
- "value": "100"
- },
- {
- "selected": false,
- "text": "1000",
- "value": "1000"
- }
- ],
- "query": "10, 100, 1000",
- "queryValue": "",
- "skipUrlSync": false,
- "type": "custom"
- },
- {
- "current": {
- "selected": false,
- "text": "realm-demo-staging",
- "value": "realm-demo-staging"
- },
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "definition": "",
- "hide": 2,
- "includeAll": false,
- "multi": false,
- "name": "cluster",
- "options": [],
- "query": {
- "dimensionKey": "ClusterName",
- "metricName": "CPUUtilization",
- "namespace": "AWS/ECS",
- "queryType": "dimensionValues",
- "refId": "CloudWatchVariableQueryEditor-VariableQuery",
- "region": "default"
- },
- "refresh": 1,
- "regex": "hub-staging",
- "skipUrlSync": false,
- "sort": 0,
- "type": "query"
- },
- {
- "current": {
- "selected": false,
- "text": "app/waypoint-ecs-realm-demo/7e699a3b9ff13ebc",
- "value": "app/waypoint-ecs-realm-demo/7e699a3b9ff13ebc"
- },
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "definition": "",
- "hide": 2,
- "includeAll": false,
- "multi": false,
- "name": "lb",
- "options": [],
- "query": {
- "dimensionKey": "LoadBalancer",
- "metricName": "RequestCount",
- "namespace": "AWS/ApplicationELB",
- "queryType": "dimensionValues",
- "refId": "CloudWatchVariableQueryEditor-VariableQuery",
- "region": "default"
- },
- "refresh": 1,
- "regex": "app/waypoint-ecs-hub/.*",
- "skipUrlSync": false,
- "sort": 0,
- "type": "query"
- },
- {
- "current": {
- "selected": false,
- "text": "waypoint-logs",
- "value": "arn:aws:logs:us-east-1:680542703984:log-group:waypoint-logs:*"
- },
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "definition": "",
- "hide": 2,
- "includeAll": false,
- "multi": false,
- "name": "loggroup",
- "options": [],
- "query": {
- "logGroupPrefix": "waypoint-logs",
- "queryType": "logGroups",
- "refId": "CloudWatchVariableQueryEditor-VariableQuery",
- "region": "default"
- },
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "type": "query"
- },
- {
- "hide": 2,
- "name": "service",
- "query": "hub",
- "skipUrlSync": false,
- "type": "constant"
- }
- ]
- },
- "time": {
- "from": "now-15m",
- "to": "now"
- },
- "timepicker": {},
- "timezone": "",
- "title": "Hub Server",
- "weekStart": ""
- }
-}
diff --git a/tmp/grafanactl-pull.nnCwcU/Dashboard/b5a43a39-bb43-42b5-917b-ac54a0bdeff5.json b/tmp/grafanactl-pull.nnCwcU/Dashboard/b5a43a39-bb43-42b5-917b-ac54a0bdeff5.json
deleted file mode 100644
index e95e707..0000000
--- a/tmp/grafanactl-pull.nnCwcU/Dashboard/b5a43a39-bb43-42b5-917b-ac54a0bdeff5.json
+++ /dev/null
@@ -1,406 +0,0 @@
-{
- "apiVersion": "dashboard.grafana.app/v0alpha1",
- "kind": "Dashboard",
- "metadata": {
- "annotations": {},
- "labels": {},
- "name": "b5a43a39-bb43-42b5-917b-ac54a0bdeff5",
- "namespace": "default"
- },
- "spec": {
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": {
- "type": "grafana",
- "uid": "-- Grafana --"
- },
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations \u0026 Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "fiscalYearStartMonth": 0,
- "graphTooltip": 0,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 0
- },
- "id": 1,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "cardie-staging-Cluster-XVKsuc5732Dj",
- "ServiceName": "cardie-staging-bot-Service-DoUGKX86rb2z"
- },
- "expression": "",
- "id": "",
- "label": "Average",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "CPUUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "cardie-staging-Cluster-XVKsuc5732Dj",
- "ServiceName": "cardie-staging-bot-Service-DoUGKX86rb2z"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "Maximum",
- "logGroups": [],
- "matchExact": false,
- "metricEditorMode": 0,
- "metricName": "CPUUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "CPU Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 0
- },
- "id": 2,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "cardie-staging-Cluster-XVKsuc5732Dj",
- "ServiceName": "cardie-staging-bot-Service-DoUGKX86rb2z"
- },
- "expression": "",
- "id": "",
- "label": "Average",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "MemoryUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "cardie-staging-Cluster-XVKsuc5732Dj",
- "ServiceName": "cardie-staging-bot-Service-DoUGKX86rb2z"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "Maximum",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "MemoryUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "Memory Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "gridPos": {
- "h": 6,
- "w": 24,
- "x": 0,
- "y": 8
- },
- "id": 3,
- "options": {
- "dedupStrategy": "none",
- "enableLogDetails": true,
- "prettifyLogMessage": false,
- "showCommonLabels": false,
- "showLabels": false,
- "showTime": true,
- "sortOrder": "Descending",
- "wrapLogMessage": false
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {},
- "expression": "fields @timestamp, @message |\n sort @timestamp desc |\n limit $logslimit",
- "id": "",
- "label": "",
- "logGroups": [
- {
- "accountId": "680542703984",
- "arn": "arn:aws:logs:us-east-1:680542703984:log-group:/copilot/cardie-staging-bot:*",
- "name": "/copilot/cardie-staging-bot"
- }
- ],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "",
- "metricQueryType": 0,
- "namespace": "",
- "period": "",
- "queryMode": "Logs",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average",
- "statsGroups": []
- }
- ],
- "title": "Logs",
- "type": "logs"
- }
- ],
- "refresh": "5s",
- "schemaVersion": 38,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "current": {
- "selected": true,
- "text": "10",
- "value": "10"
- },
- "hide": 0,
- "includeAll": false,
- "label": "Logs Limit",
- "multi": false,
- "name": "logslimit",
- "options": [
- {
- "selected": true,
- "text": "10",
- "value": "10"
- },
- {
- "selected": false,
- "text": "100",
- "value": "100"
- },
- {
- "selected": false,
- "text": "1000",
- "value": "1000"
- }
- ],
- "query": "10, 100, 1000",
- "queryValue": "",
- "skipUrlSync": false,
- "type": "custom"
- }
- ]
- },
- "time": {
- "from": "now-15m",
- "to": "now"
- },
- "timepicker": {},
- "timezone": "",
- "title": "Cardie",
- "weekStart": ""
- }
-}
diff --git a/tmp/grafanactl-pull.nnCwcU/Dashboard/b5e70a32-aa79-4a80-9ebc-00a4db975798.json b/tmp/grafanactl-pull.nnCwcU/Dashboard/b5e70a32-aa79-4a80-9ebc-00a4db975798.json
deleted file mode 100644
index fb98022..0000000
--- a/tmp/grafanactl-pull.nnCwcU/Dashboard/b5e70a32-aa79-4a80-9ebc-00a4db975798.json
+++ /dev/null
@@ -1,1016 +0,0 @@
-{
- "apiVersion": "dashboard.grafana.app/v0alpha1",
- "kind": "Dashboard",
- "metadata": {
- "annotations": {},
- "labels": {},
- "name": "b5e70a32-aa79-4a80-9ebc-00a4db975798",
- "namespace": "default"
- },
- "spec": {
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": {
- "type": "grafana",
- "uid": "-- Grafana --"
- },
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations \u0026 Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "fiscalYearStartMonth": 0,
- "graphTooltip": 0,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "max": 100,
- "min": 0,
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 0
- },
- "id": 1,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "$cluster"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": false,
- "metricEditorMode": 0,
- "metricName": "CPUUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "CPU Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "max": 100,
- "min": 0,
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "percent"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 0
- },
- "id": 2,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "ClusterName": "$cluster"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": false,
- "metricEditorMode": 0,
- "metricName": "MemoryUtilization",
- "metricQueryType": 0,
- "namespace": "AWS/ECS",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- }
- ],
- "title": "Memory Utilization",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "gridPos": {
- "h": 7,
- "w": 24,
- "x": 0,
- "y": 7
- },
- "id": 3,
- "options": {
- "dedupStrategy": "none",
- "enableLogDetails": true,
- "prettifyLogMessage": false,
- "showCommonLabels": false,
- "showLabels": false,
- "showTime": true,
- "sortOrder": "Descending",
- "wrapLogMessage": false
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {},
- "expression": "fields @timestamp, @message |\n filter @logStream like \"/realm-demo/\" |\n sort @timestamp desc |\n limit $logslimit",
- "id": "",
- "label": "",
- "logGroups": [
- {
- "arn": "$loggroup",
- "name": "$loggroup"
- }
- ],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "",
- "metricQueryType": 0,
- "namespace": "",
- "period": "",
- "queryMode": "Logs",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average",
- "statsGroups": []
- }
- ],
- "title": "Logs",
- "type": "logs"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 0,
- "y": 14
- },
- "id": 4,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "id": "",
- "label": "Maximum",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "TargetResponseTime",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Maximum"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "Average",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "TargetResponseTime",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "B",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Average"
- }
- ],
- "title": "Response Time",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "none"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 6,
- "y": 14
- },
- "id": 5,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": false
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "id": "",
- "label": "",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "RequestCount",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "A",
- "region": "default",
- "sqlExpression": "",
- "statistic": "Sum"
- }
- ],
- "title": "Request Count",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "5XX"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "red",
- "mode": "fixed"
- }
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "2XX"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "green",
- "mode": "fixed"
- }
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 12,
- "y": 14
- },
- "id": 6,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "cloudwatch",
- "uid": "b66e3d56-fb4e-49d6-9625-5d06ee69010b"
- },
- "dimensions": {
- "LoadBalancer": "$lb"
- },
- "expression": "",
- "hide": false,
- "id": "",
- "label": "2XX",
- "logGroups": [],
- "matchExact": true,
- "metricEditorMode": 0,
- "metricName": "HTTPCode_Target_2XX_Count",
- "metricQueryType": 0,
- "namespace": "AWS/ApplicationELB",
- "period": "",
- "queryMode": "Metrics",
- "refId": "C",
- "region": "default",
- "sqlExpressio |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a local Alloy-based Docker log scraper to the observability dev stack and introduces a custom Loki config so long-lived container log backlogs don’t cause ingestion failures.
Changes:
- Enables the Alloy service in the local
docker-compose.ymland wires it to Loki. - Adds
alloy/config.alloyto discover Docker containers and ship stdout to Loki with the intended label schema. - Adds
loki/config.yamlto relax old-sample rejection and raises local ingestion limits; updates README with the new components and label schema.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| packages/observability/loki/config.yaml | Adds a local Loki configuration tuned for dev/backlog ingestion. |
| packages/observability/docker-compose.yml | Mounts the custom Loki config and enables the Alloy log-scraper service. |
| packages/observability/alloy/config.alloy | Implements Docker discovery, relabeling for env/service/realm, and an “older than 24h” drop stage. |
| packages/observability/README.md | Documents the new local stack components and the “load-bearing” label schema. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Drop rule now matches the Compose service label exactly (`com.docker.compose.service`) so unrelated containers whose names merely contain grafana / loki / alloy (e.g. `loki-migrator`) don't get silently filtered out. - `realm` relabel is gated on `(.+)` so it's only set when the container actually exposes `boxel.realm`. Otherwise Loki streams carried an empty-string `realm` label, which made `realm!=""` behave differently from "label absent" in queries. - Bind the Alloy debug UI port to 127.0.0.1 so it isn't reachable from the LAN; add a warning comment that mounting the Docker socket is local-dev-only. - README now calls out the 24h Alloy drop filter so readers don't expect months of historical container stdout to appear in Loki. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
habdelra
approved these changes
Apr 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
packages/observability/docker-compose.ymland shipsalloy/config.alloythat discovers Docker containers and forwards their stdout into local Loki.env/service/realm— that staging + production FireLens will have to emit identically (companion ticket CS-10917).loki/config.yaml. The image's bundled config rejects entries older than a few minutes, which generates a 400-storm the first time Alloy attaches to a long-lived container with months of stdout.Label schema
envlocalstaging/productionservice/strippedrealm-server, etc.)realmboxel.realm=<name>The local scraper drops
grafana/loki/alloy's own log streams to keep{env="local"}clean and avoid a Grafana → Loki feedback loop.stage.drop { older_than = "24h" }filters out Docker's archived backlog before it reaches Loki — recent stuff still flows through, but aboxel-pgcontainer that's been up for two years no longer 400s the ingester.Test plan
docker compose up -dbrings up Grafana + Loki + Alloy, all healthy.curl http://localhost:3100/ready→200.curl http://localhost:3100/loki/api/v1/labelsreturnsenv,service,service_name.docker run --label boxel.realm=test_realm --name <foo> busybox …produces a stream in Loki tagged{env="local", service="<foo>", realm="test_realm"}after Alloy's ~60s discovery refresh./api/datasources/proxy/uid/loki/loki/api/v1/query_range) returns the same data.observability-grafana-1/observability-loki-1/observability-alloy-1are correctly dropped from{env="local"}.0errors after 30s of operation.🤖 Generated with Claude Code