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
| Daemon | Endpoint | Descripció |
|---|---|---|
| Write | GET /v1/health | Estat del registre de compromisos i retard |
| Read | GET /v1/health | Frescor de la projecció |
Punts d’entrada de mètriques
| Daemon | Endpoint | Format |
|---|---|---|
| Escriure | GET /v1/metrics | Text de Prometheus |
| Llegir | GET /v1/metrics | Text 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"
}
}
}
| Camp | Descripció |
|---|---|
status | saludable o degradat |
commit_log.end_seq | Última seqüència compromesa |
commit_log.checkpoint_seq | Última seqüència de punt de control |
commit_log.lag | Diferè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
}
}
| Field | Description |
|---|---|
freshness.checkpoint_seq | Seqüències aplicades a la projecció |
freshness.commit_log_seq | Últim en el registre de confirmacions |
freshness.lag | Quina distància està el daemon de lectura |
Mètriques Clau
Escriure Daemon
| Metric | Type | Description |
|---|---|---|
assetcore_write_requests_total | Counter | Total de sol·licituds per ruta i estat |
assetcore_write_request_duration_seconds | Histogram | Latència de la sol·licitud |
assetcore_write_commit_duration_seconds | Histogram | Latència específica del compromís |
assetcore_write_ingress_queue_depth | Gauge | Articles esperant en cua |
assetcore_write_ingress_inflight | Gauge | Sol·licituds que s’estan processant |
assetcore_write_commit_log_end_seq | Gauge | Última seqüència compromesa |
assetcore_write_commit_log_lag | Gauge | Retard del punt de control |
Llegir Daemon
| Mètrica | Tipus | Descripció |
|---|---|---|
assetcore_read_requests_total | Comptador | Total de sol·licituds per ruta |
assetcore_read_request_duration_seconds | Histograma | Latència de la sol·licitud |
assetcore_read_checkpoint_seq | Mesura | Seqüència aplicada |
assetcore_read_freshness_lag | Mesura | Esdeveniments darrere del registre de compromís |
assetcore_read_snapshot_publish_duration_seconds | Histograma | Temps 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
- Conceptes bàsics de desplegament - Executant daemons
- Frescor i Repetició - Comprendre el retard
- HTTP API - Referència d’endpoint