Salut i Mètriques

Els daemons d’Asset Core exposen punts d’entrada de salut per al monitoratge i mètriques de Prometheus per a l’observabilitat.

Visió general

Tant els daemons d’escriptura com els de lectura proporcionen:

  • Punt d’entrada de salut: estat JSON per a equilibradors de càrrega i monitorització
  • Punt d’endpoint de mètriques: mètriques en format Prometheus per a taulers de control i alertes

Estructura

Health Endpoints

DaemonEndpointDescripció
WriteGET /v1/healthEstat del registre de compromisos i retard
ReadGET /v1/healthFrescor de la projecció

Punts d’entrada de mètriques

DaemonEndpointFormat
EscriureGET /v1/metricsText de Prometheus
LlegirGET /v1/metricsText de Prometheus

Camps

Escriure la Salut del Daemon

{
  "status": "healthy",
  "commit_log": {
    "end_seq": 1000,
    "checkpoint_seq": 1000,
    "lag": 0,
    "driver": {
      "name": "file",
      "path": "/var/lib/assetcore/commit_log.log"
    }
  }
}
CampDescripció
statussaludable o degradat
commit_log.end_seqÚltima seqüència compromesa
commit_log.checkpoint_seqÚltima seqüència de punt de control
commit_log.lagDiferència (hauria de ser 0 o a prop de 0)

Llegir la Salut del Daemon

{
  "status": "healthy",
  "freshness": {
    "checkpoint_seq": 998,
    "commit_log_seq": 1000,
    "lag": 2
  }
}
FieldDescription
freshness.checkpoint_seqSeqüències aplicades a la projecció
freshness.commit_log_seqÚltim en el registre de confirmacions
freshness.lagQuina distància està el daemon de lectura

Mètriques Clau

Escriure Daemon

MetricTypeDescription
assetcore_write_requests_totalCounterTotal de sol·licituds per ruta i estat
assetcore_write_request_duration_secondsHistogramLatència de la sol·licitud
assetcore_write_commit_duration_secondsHistogramLatència específica del compromís
assetcore_write_ingress_queue_depthGaugeArticles esperant en cua
assetcore_write_ingress_inflightGaugeSol·licituds que s’estan processant
assetcore_write_commit_log_end_seqGaugeÚltima seqüència compromesa
assetcore_write_commit_log_lagGaugeRetard del punt de control

Llegir Daemon

MètricaTipusDescripció
assetcore_read_requests_totalComptadorTotal de sol·licituds per ruta
assetcore_read_request_duration_secondsHistogramaLatència de la sol·licitud
assetcore_read_checkpoint_seqMesuraSeqüència aplicada
assetcore_read_freshness_lagMesuraEsdeveniments darrere del registre de compromís
assetcore_read_snapshot_publish_duration_secondsHistogramaTemps de publicació de la instantània

Exemples

Comprovar la salut d’escriptura

curl http://localhost:8080/v1/health | jq .

Comprovar la Frescor de Lectura

curl http://localhost:8081/v1/read/freshness | jq .

Mètriques de Scrape

Afegeix a la teva configuració de Prometheus:

Orientació addicional:

scrape_configs:
  - job_name: 'assetcore-write'
    static_configs:
      - targets: ['localhost:8080']
    metrics_path: '/v1/metrics'

  - job_name: 'assetcore-read'
    static_configs:
      - targets: ['localhost:8081']
    metrics_path: '/v1/metrics'

Exemple de Consultes Prometheus

Taxa de sol·licitud:

rate(assetcore_write_requests_total[5m])

P99 latència:

histogram_quantile(0.99, rate(assetcore_write_request_duration_seconds_bucket[5m]))

Llegir el retard del daemon:

assetcore_read_freshness_lag

Taxa d’error:

rate(assetcore_write_requests_total{status!="200"}[5m])

Exemple d’Alertes

groups:
  - name: assetcore
    rules:
      - alert: HighReadLag
        expr: assetcore_read_freshness_lag > 100
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "Read daemon is behind commit log"

      - alert: WriteQueueFull
        expr: assetcore_write_ingress_queue_depth > 900
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "Write queue approaching capacity"

Referències relacionades