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
| Daemon | Endpoint | Descripció |
|---|---|---|
| Write | GET /v1/write/health | Estat, versió i temps d’activitat |
| Read | GET /v1/read/health | Preparació més frescor per a un espai de noms (utilitza x-assetcore-namespace quan no està configurat) |
Punts d’entrada de mètriques
| Daemon | Endpoint | Format |
|---|---|---|
| Escriviu | GET /v1/write/metrics | Text de Prometheus (en l’escolta de mètriques) |
| Llegiu | GET /v1/read/metrics | Text 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
}
}
| Camp | Descripció |
|---|---|
status | Llegir: starting, ready, degraded; Escriure: healthy |
version | Cadena de versió del daemon només per a escriptura |
api_version | Cadena de versió de l’API només per a escriptura |
build_git_sha | SHA del commit de Git només per a escriptura quan estigui disponible |
uptime_secs | Segons des de l’inici del procés només per a escriptura |
freshness | Metadades de frescor només per a lectura per a l’espai de noms |
Mètriques Clau
Escriure daemon
| Mètric | Tipus | Descripció |
|---|---|---|
ingress_requests_total | Comptador | Total de sol·licituds d’entrada per ruta/resultat |
ingress_request_duration_seconds | Histograma | Latència de les sol·licituds d’entrada |
commit_duration_seconds | Histograma | Latència de compromís de punta a punta |
ingress_queue_depth | Mesura | Articles esperant a la cua |
ingress_inflight | Mesura | Sol·licituds que s’estan processant |
commit_log_end_seq | Mesura | Última seqüència compromesa |
commit_log_driver_lag_events | Mesura | Retard del controlador del registre de compromís en esdeveniments |
Llegir daemon
| Mètrica | Tipus | Descripció |
|---|---|---|
http_requests_total | Comptador | Total de sol·licituds HTTP per ruta/resultat |
http_request_duration_seconds | Histograma | Latència de la sol·licitud HTTP |
read_checkpoint_seq | Gauge | Seqüència aplicada |
read_commit_log_end_seq | Gauge | Seqüència del registre de confirmació observada |
freshness_lag_events | Gauge | Esdeveniments darrere del registre de confirmació |
freshness_lag_ms | Gauge | Mil·lisegons darrere del registre de confirmació |
snapshot_publish_duration_seconds | Histograma | Temps 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"
Referències relacionades
- Conceptes bàsics de desplegament - Executant daemons
- Frescor i Repetició - Comprendre el retard
- HTTP API - Referència d’endpoint