{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "The Prometheus data source scraping Sylo's GET /metrics", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "10.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "1.0.0" }, { "type": "panel", "id": "timeseries", "name": "Time series", "version": "" }, { "type": "panel", "id": "stat", "name": "Stat", "version": "" }, { "type": "panel", "id": "barchart", "name": "Bar chart", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "graphTooltip": 1, "id": null, "links": [], "refresh": "30s", "schemaVersion": 39, "tags": ["sylo", "discord-bot"], "templating": { "list": [ { "current": {}, "hide": 0, "label": "Data source", "name": "DS_PROMETHEUS", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" } ] }, "time": { "from": "now-6h", "to": "now" }, "timezone": "", "title": "Sylo", "uid": "sylo-overview", "version": 1, "panels": [ { "type": "stat", "title": "Gateway", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 }, "targets": [{ "expr": "sylo_up", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "background", "graphMode": "none" }, "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "0": { "text": "DOWN", "color": "red" }, "1": { "text": "UP", "color": "green" } } } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "green", "value": 1 } ] } } } }, { "type": "stat", "title": "Guilds", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 }, "targets": [{ "expr": "sylo_guilds", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "graphMode": "area" } }, { "type": "stat", "title": "Uptime", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 8, "y": 0 }, "targets": [{ "expr": "sylo_uptime_seconds", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "graphMode": "none" }, "fieldConfig": { "defaults": { "unit": "s" } } }, { "type": "stat", "title": "Errors in ring buffer", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 12, "y": 0 }, "targets": [{ "expr": "sylo_errors_recorded", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "value", "graphMode": "none" }, "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1 }, { "color": "red", "value": 10 } ] } } } }, { "type": "stat", "title": "Database size", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 16, "y": 0 }, "targets": [{ "expr": "sylo_db_bytes", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "graphMode": "area" }, "fieldConfig": { "defaults": { "unit": "bytes" } } }, { "type": "stat", "title": "Error rate (5m)", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 4, "w": 4, "x": 20, "y": 0 }, "targets": [{ "expr": "sum(rate(sylo_errors_total[5m]))", "refId": "A" }], "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "graphMode": "area" }, "fieldConfig": { "defaults": { "unit": "reqps", "decimals": 3 } } }, { "type": "timeseries", "title": "Gateway ping (ms)", "description": "Discord heartbeat latency. -1 means unknown (not yet connected).", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 4 }, "targets": [{ "expr": "sylo_gateway_ping_ms", "refId": "A", "legendFormat": "ping" }], "fieldConfig": { "defaults": { "unit": "ms", "custom": { "drawStyle": "line", "fillOpacity": 10, "spanNulls": true } } } }, { "type": "timeseries", "title": "HTTP requests/s by route", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 4 }, "targets": [ { "expr": "sum by (route) (rate(sylo_http_requests_total[5m]))", "refId": "A", "legendFormat": "{{route}}" } ], "fieldConfig": { "defaults": { "unit": "reqps", "custom": { "drawStyle": "line", "fillOpacity": 15, "stacking": { "mode": "normal" } } } } }, { "type": "timeseries", "title": "HTTP requests/s by status", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 12 }, "targets": [ { "expr": "sum by (status) (rate(sylo_http_requests_total[5m]))", "refId": "A", "legendFormat": "{{status}}" } ], "fieldConfig": { "defaults": { "unit": "reqps", "custom": { "drawStyle": "line", "fillOpacity": 15, "stacking": { "mode": "normal" } } } } }, { "type": "timeseries", "title": "Slash commands & component interactions /s", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 12 }, "targets": [ { "expr": "sum by (command) (rate(sylo_commands_total[15m]))", "refId": "A", "legendFormat": "cmd {{command}}" }, { "expr": "sum by (scope) (rate(sylo_component_interactions_total[15m]))", "refId": "B", "legendFormat": "ui {{scope}}" } ], "fieldConfig": { "defaults": { "unit": "reqps", "custom": { "drawStyle": "line", "fillOpacity": 10 } } } }, { "type": "timeseries", "title": "Errors/s by scope", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 20 }, "targets": [ { "expr": "sum by (scope) (rate(sylo_errors_total[15m]))", "refId": "A", "legendFormat": "{{scope}}" } ], "fieldConfig": { "defaults": { "unit": "reqps", "custom": { "drawStyle": "bars", "fillOpacity": 60, "stacking": { "mode": "normal" } } } } }, { "type": "barchart", "title": "Modules enabled (guild count)", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 20 }, "targets": [ { "expr": "topk(20, sylo_module_enabled)", "refId": "A", "legendFormat": "{{module}}", "instant": true } ], "options": { "orientation": "horizontal", "xTickLabelRotation": 0, "showValue": "auto", "legend": { "showLegend": false } } } ] }