{ "annotations": { "list": [] }, "editable": true, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "datasource": { "type": "loki", "uid": "loki" }, "description": "Строк логов в минуту по контейнерам deal-процессов (core/telegram-service/ai-service/ml-service). Контейнер без логов = нет данных (сервис молчит или лежит).", "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "fillOpacity": 15, "lineWidth": 1, "showPoints": "never" }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, "id": 1, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "count_over_time({service=\"core\"}[1m])", "legendFormat": "core", "refId": "A" }, { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "count_over_time({service=\"telegram-service\"}[1m])", "legendFormat": "telegram-service", "refId": "B" }, { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "count_over_time({service=\"ai-service\"}[1m])", "legendFormat": "ai-service", "refId": "C" }, { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "count_over_time({service=\"ml-service\"}[1m])", "legendFormat": "ml-service", "refId": "D" } ], "title": "Активность логов deal-процессов (строк/мин)", "type": "timeseries" }, { "datasource": { "type": "loki", "uid": "loki" }, "description": "Строки уровня Error/Fatal (Serilog CompactJsonFormatter: \"@l\":\"Error\"/\"Fatal\") по deal-процессам. Поиск по логам детально — Explore с датасорсом Loki.", "fieldConfig": { "defaults": { "custom": { "drawStyle": "bars", "fillOpacity": 60, "lineWidth": 1, "showPoints": "never" }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "count_over_time({service=~\"core|telegram-service|ai-service|ml-service\"} |~ \"@l\\\":\\\"(Error|Fatal)\" [1m])", "legendFormat": "{{service}}", "refId": "A" } ], "title": "Ошибки и фатальные по deal-процессам (строк/мин)", "type": "timeseries" }, { "datasource": { "type": "loki", "uid": "loki" }, "description": "Суммарно Error/Fatal по всем deal-процессам за 5 минут; >0 — повод открыть Explore и посмотреть текст ошибки.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 1 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 4, "w": 24, "x": 0, "y": 8 }, "id": 3, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "loki", "uid": "loki" }, "editorMode": "code", "expr": "sum(count_over_time({service=~\"core|telegram-service|ai-service|ml-service\"} |~ \"@l\\\":\\\"(Error|Fatal)\" [5m]))", "legendFormat": "ошибок за 5м", "refId": "A" } ], "title": "Ошибки за 5 минут (все deal-процессы)", "type": "stat" } ], "refresh": "30s", "schemaVersion": 39, "tags": [ "deal" ], "templating": { "list": [] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Deal-Health", "uid": "deal-health", "version": 1, "weekStart": "" }