Documentació d'Asset Core

Documentació del motor d'estat del món determinista i referències de l'API.

Decision Gate docs

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. Aquests senyals estan dissenyats per mostrar la disponibilitat, la frescor i el retard, de manera que els operadors puguin detectar problemes abans que afectin els usuaris.

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 (desactivat per defecte, servit en un oient dedicat)

Estructura

Health Endpoints

DaemonEndpointDescripció
WriteGET /v1/write/healthEstat, versió i temps d’activitat
ReadGET /v1/read/healthPreparació més frescor per a un espai de noms (utilitza x-assetcore-namespace quan no està configurat)

Punts d’entrada de mètriques

DaemonEndpointFormat
EscriviuGET /v1/write/metricsText de Prometheus (en l’escolta de mètriques)
LlegiuGET /v1/read/metricsText de Prometheus (en l’escolta de mètriques)

Les mètriques estan desactivades per defecte. Activa-les en daemon-write ([logging] metrics_enabled) i daemon-read ([observability] metrics_enabled), estableix valors distintius per a metrics_address, i opcionalment permet la inclusió de principals per a /v1/write/metrics i /v1/read/metrics. Planifica obtenir dades d’aquests punts finals aviat en producció perquè puguis veure les tendències de retard de frescor.

Campanyes

Resposta de Salut

{
  "status": "ready",
  "freshness": {
    "namespace": 1,
    "world_seq": 128,
    "commit_log_world_seq": 130,
    "lag": 2,
    "lag_ms": 250
  }
}
CampDescripció
statusLlegir: starting, ready, degraded; Escriure: healthy
versionCadena de versió del daemon només per a escriptura
api_versionCadena de versió de l’API només per a escriptura
build_git_shaSHA del commit de Git només per a escriptura quan estigui disponible
uptime_secsSegons des de l’inici del procés només per a escriptura
freshnessMetadades de frescor només per a lectura per a l’espai de noms

Mètriques Clau

Escriure daemon

MètricTipusDescripció
ingress_requests_totalComptadorTotal de sol·licituds d’entrada per ruta/resultat
ingress_request_duration_secondsHistogramaLatència de les sol·licituds d’entrada
commit_duration_secondsHistogramaLatència de compromís de punta a punta
ingress_queue_depthMesuraArticles esperant a la cua
ingress_inflightMesuraSol·licituds que s’estan processant
commit_log_end_seqMesuraÚltima seqüència compromesa
commit_log_driver_lag_eventsMesuraRetard del controlador del registre de compromís en esdeveniments

Llegir daemon

MètricaTipusDescripció
http_requests_totalComptadorTotal de sol·licituds HTTP per ruta/resultat
http_request_duration_secondsHistogramaLatència de la sol·licitud HTTP
read_checkpoint_seqGaugeSeqüència aplicada
read_commit_log_end_seqGaugeSeqüència del registre de confirmació observada
freshness_lag_eventsGaugeEsdeveniments darrere del registre de confirmació
freshness_lag_msGaugeMil·lisegons darrere del registre de confirmació
snapshot_publish_duration_secondsHistogramaTemps de publicació de la instantània

Exemples

Comprovar la salut d’escriptura

curl -H "Authorization: Bearer $ASSETCORE_ADMIN_TOKEN" \
  http://localhost:8080/v1/write/health | jq .

Comprovar la Frescor de Lectura

curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
  http://localhost:8081/v1/read/namespaces/5001/freshness | jq .

Mètriques de Scrape

Afegeix a la teva configuració de Prometheus:

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

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

Exemple de Consultes Prometheus

Taxa de sol·licitud:

rate(ingress_requests_total[5m])

P99 latència:

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

Llegir el retard del daemon:

freshness_lag_events

Taxa d’error:

rate(http_requests_total{outcome!="success"}[5m])

Exemple d’Alertes

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

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