mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 20:19:39 +02:00
- scripts/check-status.sh: parallel HTTP check aller mana.how Domains aus cloudflared-config.yml - docker/blackbox/blackbox.yml: Blackbox Exporter Config (http_2xx, http_health Module) - docker-compose.macmini.yml: blackbox-exporter Container (Port 9115, 32MB RAM) - docker/prometheus/prometheus.yml: 4 Scrape-Jobs (blackbox-web, blackbox-api, blackbox-infra, blackbox-gpu) - docker/prometheus/alerts.yml: 5 Alert-Regeln (WebAppDown, APIDown, InfraToolDown, GPUServiceDown, SlowHTTPResponse) - docker/grafana/dashboards/uptime.json: Grafana Uptime-Dashboard mit Status-Tables und Verlauf - package.json: check:status Script Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
649 lines
16 KiB
JSON
649 lines
16 KiB
JSON
{
|
|
"title": "ManaCore Uptime",
|
|
"uid": "uptime",
|
|
"description": "HTTP Uptime aller mana.how Dienste via Blackbox Exporter",
|
|
"tags": ["uptime", "blackbox", "http"],
|
|
"schemaVersion": 38,
|
|
"version": 1,
|
|
"refresh": "1m",
|
|
"time": { "from": "now-24h", "to": "now" },
|
|
"timepicker": {},
|
|
"timezone": "browser",
|
|
"templating": {
|
|
"list": [
|
|
{
|
|
"name": "datasource",
|
|
"type": "datasource",
|
|
"pluginId": "prometheus",
|
|
"label": "Datasource",
|
|
"hide": 0,
|
|
"current": {}
|
|
}
|
|
]
|
|
},
|
|
"panels": [
|
|
{
|
|
"type": "row",
|
|
"id": 1,
|
|
"title": "Zusammenfassung",
|
|
"collapsed": false,
|
|
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }
|
|
},
|
|
{
|
|
"type": "stat",
|
|
"id": 2,
|
|
"title": "Web Apps Online",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "thresholds" },
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "yellow", "value": 10 },
|
|
{ "color": "green", "value": 18 }
|
|
]
|
|
},
|
|
"unit": "short",
|
|
"mappings": []
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"colorMode": "background",
|
|
"graphMode": "area",
|
|
"justifyMode": "center",
|
|
"orientation": "auto",
|
|
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
|
|
"textMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "sum(probe_success{job=\"blackbox-web\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Online"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "stat",
|
|
"id": 3,
|
|
"title": "APIs Online",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "thresholds" },
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "yellow", "value": 7 },
|
|
{ "color": "green", "value": 9 }
|
|
]
|
|
},
|
|
"unit": "short",
|
|
"mappings": []
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"colorMode": "background",
|
|
"graphMode": "area",
|
|
"justifyMode": "center",
|
|
"orientation": "auto",
|
|
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
|
|
"textMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "sum(probe_success{job=\"blackbox-api\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Online"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "stat",
|
|
"id": 4,
|
|
"title": "Infra Online",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "thresholds" },
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "yellow", "value": 4 },
|
|
{ "color": "green", "value": 5 }
|
|
]
|
|
},
|
|
"unit": "short",
|
|
"mappings": []
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"colorMode": "background",
|
|
"graphMode": "area",
|
|
"justifyMode": "center",
|
|
"orientation": "auto",
|
|
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
|
|
"textMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "sum(probe_success{job=\"blackbox-infra\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Online"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "stat",
|
|
"id": 5,
|
|
"title": "GPU Services Online",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "thresholds" },
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "yellow", "value": 2 },
|
|
{ "color": "green", "value": 4 }
|
|
]
|
|
},
|
|
"unit": "short",
|
|
"mappings": []
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"colorMode": "background",
|
|
"graphMode": "area",
|
|
"justifyMode": "center",
|
|
"orientation": "auto",
|
|
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
|
|
"textMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "sum(probe_success{job=\"blackbox-gpu\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Online"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "stat",
|
|
"id": 6,
|
|
"title": "Ø Antwortzeit (Web)",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "thresholds" },
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "green", "value": null },
|
|
{ "color": "yellow", "value": 2 },
|
|
{ "color": "red", "value": 5 }
|
|
]
|
|
},
|
|
"unit": "s",
|
|
"mappings": []
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "center",
|
|
"orientation": "auto",
|
|
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
|
|
"textMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "avg(probe_duration_seconds{job=\"blackbox-web\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Ø ms"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "row",
|
|
"id": 10,
|
|
"title": "Web Apps",
|
|
"collapsed": false,
|
|
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }
|
|
},
|
|
{
|
|
"type": "table",
|
|
"id": 11,
|
|
"title": "Web App Status",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 14, "w": 12, "x": 0, "y": 6 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"align": "left",
|
|
"displayMode": "color-background"
|
|
},
|
|
"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 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "instance" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "URL" },
|
|
{ "id": "custom.width", "value": 260 }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Value" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "Status" },
|
|
{ "id": "custom.width", "value": 80 }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"sortBy": [{ "displayName": "Status", "desc": false }],
|
|
"footer": { "show": false }
|
|
},
|
|
"transformations": [
|
|
{ "id": "labelsToFields", "options": { "mode": "columns", "keepLabels": ["instance"] } },
|
|
{
|
|
"id": "organize",
|
|
"options": {
|
|
"excludeByName": { "Time": true, "job": true, "__name__": true },
|
|
"indexByName": { "instance": 0, "Value": 1 }
|
|
}
|
|
}
|
|
],
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_success{job=\"blackbox-web\"}",
|
|
"instant": true,
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "timeseries",
|
|
"id": 12,
|
|
"title": "Web App Antwortzeiten",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 14, "w": 12, "x": 12, "y": 6 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "palette-classic" },
|
|
"custom": { "lineWidth": 1, "fillOpacity": 10 },
|
|
"unit": "s",
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "green", "value": null },
|
|
{ "color": "red", "value": 5 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "table",
|
|
"placement": "bottom",
|
|
"calcs": ["lastNotNull", "mean"]
|
|
},
|
|
"tooltip": { "mode": "multi" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_duration_seconds{job=\"blackbox-web\"}",
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "row",
|
|
"id": 20,
|
|
"title": "API Health Endpoints",
|
|
"collapsed": false,
|
|
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 20 }
|
|
},
|
|
{
|
|
"type": "table",
|
|
"id": 21,
|
|
"title": "API Status",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 10, "w": 12, "x": 0, "y": 21 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": { "align": "left", "displayMode": "color-background" },
|
|
"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 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "instance" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "Endpoint" },
|
|
{ "id": "custom.width", "value": 300 }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Value" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "Status" },
|
|
{ "id": "custom.width", "value": 80 }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"sortBy": [{ "displayName": "Status", "desc": false }],
|
|
"footer": { "show": false }
|
|
},
|
|
"transformations": [
|
|
{ "id": "labelsToFields", "options": { "mode": "columns", "keepLabels": ["instance"] } },
|
|
{
|
|
"id": "organize",
|
|
"options": {
|
|
"excludeByName": { "Time": true, "job": true },
|
|
"indexByName": { "instance": 0, "Value": 1 }
|
|
}
|
|
}
|
|
],
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_success{job=\"blackbox-api\"}",
|
|
"instant": true,
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "timeseries",
|
|
"id": 22,
|
|
"title": "API Uptime-Verlauf (24h)",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 10, "w": 12, "x": 12, "y": 21 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "palette-classic" },
|
|
"custom": { "lineWidth": 2, "fillOpacity": 20 },
|
|
"unit": "short",
|
|
"min": 0,
|
|
"max": 1,
|
|
"mappings": [
|
|
{ "type": "value", "options": { "0": { "text": "DOWN" }, "1": { "text": "UP" } } }
|
|
],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "green", "value": 1 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "table",
|
|
"placement": "bottom",
|
|
"calcs": ["lastNotNull", "mean"]
|
|
},
|
|
"tooltip": { "mode": "multi" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_success{job=\"blackbox-api\"}",
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "row",
|
|
"id": 30,
|
|
"title": "Infrastruktur & GPU",
|
|
"collapsed": false,
|
|
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 31 }
|
|
},
|
|
{
|
|
"type": "table",
|
|
"id": 31,
|
|
"title": "Infra-Dienste Status",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 8, "w": 8, "x": 0, "y": 32 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": { "align": "left", "displayMode": "color-background" },
|
|
"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 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "instance" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "Dienst" },
|
|
{ "id": "custom.width", "value": 220 }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Value" },
|
|
"properties": [{ "id": "displayName", "value": "Status" }]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"sortBy": [{ "displayName": "Status", "desc": false }],
|
|
"footer": { "show": false }
|
|
},
|
|
"transformations": [
|
|
{ "id": "labelsToFields", "options": { "mode": "columns", "keepLabels": ["instance"] } },
|
|
{
|
|
"id": "organize",
|
|
"options": {
|
|
"excludeByName": { "Time": true, "job": true },
|
|
"indexByName": { "instance": 0, "Value": 1 }
|
|
}
|
|
}
|
|
],
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_success{job=\"blackbox-infra\"}",
|
|
"instant": true,
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "table",
|
|
"id": 32,
|
|
"title": "GPU Server Status",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 8, "w": 8, "x": 8, "y": 32 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": { "align": "left", "displayMode": "color-background" },
|
|
"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 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "instance" },
|
|
"properties": [
|
|
{ "id": "displayName", "value": "Dienst" },
|
|
{ "id": "custom.width", "value": 220 }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Value" },
|
|
"properties": [{ "id": "displayName", "value": "Status" }]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"sortBy": [{ "displayName": "Status", "desc": false }],
|
|
"footer": { "show": false }
|
|
},
|
|
"transformations": [
|
|
{ "id": "labelsToFields", "options": { "mode": "columns", "keepLabels": ["instance"] } },
|
|
{
|
|
"id": "organize",
|
|
"options": {
|
|
"excludeByName": { "Time": true, "job": true },
|
|
"indexByName": { "instance": 0, "Value": 1 }
|
|
}
|
|
}
|
|
],
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "probe_success{job=\"blackbox-gpu\"}",
|
|
"instant": true,
|
|
"refId": "A",
|
|
"legendFormat": "{{instance}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "timeseries",
|
|
"id": 33,
|
|
"title": "Alle Dienste — Uptime-Verlauf",
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"gridPos": { "h": 8, "w": 8, "x": 16, "y": 32 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": { "mode": "palette-classic" },
|
|
"custom": { "lineWidth": 2, "fillOpacity": 10 },
|
|
"unit": "short",
|
|
"min": 0,
|
|
"max": 1,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "green", "value": 1 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"tooltip": { "mode": "multi" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "avg(probe_success{job=\"blackbox-web\"})",
|
|
"refId": "A",
|
|
"legendFormat": "Web Apps"
|
|
},
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "avg(probe_success{job=\"blackbox-api\"})",
|
|
"refId": "B",
|
|
"legendFormat": "APIs"
|
|
},
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "avg(probe_success{job=\"blackbox-infra\"})",
|
|
"refId": "C",
|
|
"legendFormat": "Infra"
|
|
},
|
|
{
|
|
"datasource": { "type": "prometheus", "uid": "${datasource}" },
|
|
"expr": "avg(probe_success{job=\"blackbox-gpu\"})",
|
|
"refId": "D",
|
|
"legendFormat": "GPU"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|