Přeskočit obsah

Monitoring

Systém EVA poskytuje live monitoring výkonu serveru prostřednictvím Prometheus a Grafana.


Health endpointy

Endpoint Určení Odpověď
/health Docker healthcheck, load balancer Healthy / Unhealthy (text)
/health/details Monitorovací systémy JSON s detailním stavem

Příklad /health/details

{
  "status": "Healthy",
  "checks": [
    {
      "name": "database",
      "status": "Healthy",
      "description": "PostgreSQL OK"
    },
    {
      "name": "memory",
      "status": "Healthy",
      "description": "Memory usage: 245 MB / 1536 MB limit"
    }
  ]
}

Prometheus metriky (/metrics)

Endpoint /metrics exportuje metriky ve formátu Prometheus (balíčky prometheus-net.AspNetCore a DotNetRuntime).

Konfigurace Prometheus scrape

# prometheus.yml
scrape_configs:
  - job_name: 'eva-manager'
    static_configs:
      - targets: ['manager:8080']
    metrics_path: '/metrics'
    scrape_interval: 15s

  - job_name: 'eva-api'
    static_configs:
      - targets: ['api:8080']
    metrics_path: '/metrics'
    scrape_interval: 15s

Grafana dashboardy

Doporučené importovatelné dashboardy:

Dashboard Grafana ID Co zobrazuje
.NET Runtime Metrics 10427 GC, thread pool, alokace paměti
ASP.NET Core 23179 HTTP požadavky, latence, chyby

Import dashboardu

  1. Grafana → + → Import
  2. Zadejte ID dashboardu (např. 10427)
  3. Vyberte Prometheus jako data source
  4. Klikněte Import

Stránka Monitoring v Eva.Manager

📸 Screenshot: Stránka /monitoring — grafy paměti, GC generací a thread poolu s aktuálními hodnotami

Dostupná na /monitoring (pouze pro roli Admin).

Zobrazuje živé metriky sbírané přes AppMetricsService:

Metrika Popis
RSS paměť Celkové využití paměti procesu (MB)
GC Heap Managed paměť .NET GC (MB)
Gen0 / Gen1 / Gen2 GC Počty garbage collection za generace
Thread pool Aktivní a čekající vlákna
Health status Celkový stav dle health check

Metriky se automaticky obnovují každých 5 sekund.