Inhaltsverzeichnis
Runbook: Prometheus
Trajanje: ~15 minut
Vloga: DevOps, SRE
Predpogoj: Prometheus strežnik, Gateway deluje
Zbiranje metrik iz Data Gateway s Prometheus.
Potek dela
flowchart TD
A[Začetek] --> B[Aktiviraj metrike]
B --> C[Prometheus konfiguracija]
C --> D[Dodaj Scrape-Job]
D --> E[Prometheus reload]
E --> F[Preveri cilje]
F --> G{Aktiven?}
G -->|Da| H[Končano]
G -->|Ne| I[Preveri požarni zid/končno točko]
style H fill:#e8f5e9
style I fill:#ffebee
1. Aktiviranje metrik v Gateway
appsettings.json:
{
"Metrics": {
"Enabled": true,
"Endpoint": "/metrics"
}
}
Ali prek NuGet (če ni vgrajeno):
# prometheus-net.AspNetCore
dotnet add package prometheus-net.AspNetCore
Program.cs:
// Metrics Middleware app.UseHttpMetrics(); app.MapMetrics(); // /metrics končna točka
2. Testiranje končne točke metrik
curl http://localhost:5000/metrics # Pričakovan izpis (Prometheus oblika): # HELP http_requests_total Total HTTP requests # TYPE http_requests_total counter # http_requests_total{method="GET",endpoint="/api/v1/dsn/demo/tables",status="200"} 42
3. Konfiguracija Prometheus
/etc/prometheus/prometheus.yml:
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: # Data Gateway - job_name: 'data-gateway' static_configs: - targets: ['gateway.example.com:5000'] metrics_path: /metrics scheme: http # ali https # Več instanc - job_name: 'data-gateway-cluster' static_configs: - targets: - 'gateway-1.example.com:5000' - 'gateway-2.example.com:5000' - 'gateway-3.example.com:5000'
4. Ponovno nalaganje Prometheus
# Config-Reload (brez ponovnega zagona) curl -X POST http://localhost:9090/-/reload # Ali ponovni zagon sudo systemctl restart prometheus
5. Preverjanje ciljev
Spletni vmesnik: http://prometheus:9090/targets
Ali prek API:
curl -s http://localhost:9090/api/v1/targets | jq '.data.activeTargets[] | {job: .labels.job, health: .health}'
Pričakovan izpis:
{
"job": "data-gateway",
"health": "up"
}
6. Pomembne poizvedbe
PromQL primeri:
# Stopnja zahtev (na sekundo)
rate(http_requests_total{job="data-gateway"}[5m])
# Povprečni odzivni čas
rate(http_request_duration_seconds_sum{job="data-gateway"}[5m])
/
rate(http_request_duration_seconds_count{job="data-gateway"}[5m])
# Stopnja napak (5xx)
sum(rate(http_requests_total{job="data-gateway",status=~"5.."}[5m]))
/
sum(rate(http_requests_total{job="data-gateway"}[5m]))
# Poraba pomnilnika
process_resident_memory_bytes{job="data-gateway"}
# Aktivne povezave
http_requests_in_progress{job="data-gateway"}
7. Kontrolni seznam
| # | Točka preverjanja | V |
| — | ———– | — |
| 1 | Končna točka metrik aktivirana | |
| 2 | /metrics dosegljiv | |
| 3 | Prometheus konfiguracija posodobljena | |
| 4 | Prometheus ponovno naložen | |
| 5 | Cilj „up“ v Prometheus | |
| 6 | Metrike vidne v Grafana |
Odpravljanje težav
| Težava | Vzrok | Rešitev |
| ——— | ——— | ——– |
| Cilj „down“ | Končna točka ni dosegljiva | Požarni zid, URL preveri |
connection refused | Gateway ne deluje | Zaženi Gateway |
404 Not Found | Metrike niso aktivirane | Preveri appsettings.json |
| Brez metrik | Napačna pot | Preveri metrics_path |
Kubernetes ServiceMonitor
Za Prometheus Operator:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: data-gateway namespace: monitoring labels: release: prometheus spec: selector: matchLabels: app: data-gateway namespaceSelector: matchNames: - data-gateway endpoints: - port: http path: /metrics interval: 15s
Povezani Runbooks
- Grafana nadzorna plošča - Vizualizacija
- Opozarjanje - Obvestila
- Kubernetes - K8s namestitev
« <- Nadzor | -> Grafana nadzorna plošča »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional
Zuletzt geändert: dne 29.01.2026 ob 23:36