Salud y Métricas
Los demonios de Asset Core exponen puntos finales de salud para monitoreo y métricas de Prometheus para observabilidad.
Visión general
Ambos demonios de escritura y lectura proporcionan:
- Punto final de salud: estado JSON para balanceadores de carga y monitoreo
- Punto final de métricas: métricas en formato Prometheus para paneles de control y alertas
Estructura
Puntos finales de salud
| Daemon | Endpoint | Descripción |
|---|---|---|
| Write | GET /v1/health | Estado del registro de confirmaciones y retraso |
| Read | GET /v1/health | Frescura de la proyección |
Puntos finales de métricas
| Daemon | Endpoint | Format |
|---|---|---|
| Escribir | GET /v1/metrics | Texto de Prometheus |
| Leer | GET /v1/metrics | Texto de Prometheus |
Campos
Escribir Salud del Daemon
{
"status": "healthy",
"commit_log": {
"end_seq": 1000,
"checkpoint_seq": 1000,
"lag": 0,
"driver": {
"name": "file",
"path": "/var/lib/assetcore/commit_log.log"
}
}
}
| Campo | Descripción |
|---|---|
status | saludable o degradado |
commit_log.end_seq | Última secuencia comprometida |
commit_log.checkpoint_seq | Última secuencia registrada en el punto de control |
commit_log.lag | Diferencia (debería ser 0 o cerca de 0) |
Leer la Salud del Daemon
{
"status": "healthy",
"freshness": {
"checkpoint_seq": 998,
"commit_log_seq": 1000,
"lag": 2
}
}
| Campo | Descripción |
|---|---|
freshness.checkpoint_seq | Secuencias aplicadas a la proyección |
freshness.commit_log_seq | Último en el registro de confirmaciones |
freshness.lag | Qué tan retrasado está el daemon de lectura |
Métricas Clave
Escribir Daemon
| Métrica | Tipo | Descripción |
|---|---|---|
assetcore_write_requests_total | Contador | Total de solicitudes por ruta y estado |
assetcore_write_request_duration_seconds | Histograma | Latencia de la solicitud |
assetcore_write_commit_duration_seconds | Histograma | Latencia específica del compromiso |
assetcore_write_ingress_queue_depth | Medidor | Elementos esperando en la cola |
assetcore_write_ingress_inflight | Medidor | Solicitudes en proceso |
assetcore_write_commit_log_end_seq | Medidor | Última secuencia comprometida |
assetcore_write_commit_log_lag | Medidor | Retraso de punto de control |
Leer Daemon
| Métrica | Tipo | Descripción |
|---|---|---|
assetcore_read_requests_total | Contador | Total de solicitudes por ruta |
assetcore_read_request_duration_seconds | Histograma | Latencia de la solicitud |
assetcore_read_checkpoint_seq | Medidor | Secuencia aplicada |
assetcore_read_freshness_lag | Medidor | Eventos detrás del registro de confirmaciones |
assetcore_read_snapshot_publish_duration_seconds | Histograma | Tiempo de publicación de instantáneas |
Ejemplos
Verificar la Salud de Escritura
curl http://localhost:8080/v1/health | jq .
Verificar la Frescura de Lectura
curl http://localhost:8081/v1/read/freshness | jq .
Métricas de Scrape
Agregue a su configuración de Prometheus:
Guía adicional:
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'
Ejemplos de Consultas de Prometheus
Tasa de solicitud:
rate(assetcore_write_requests_total[5m])
Latencia P99:
histogram_quantile(0.99, rate(assetcore_write_request_duration_seconds_bucket[5m]))
Lectura del retraso del daemon:
assetcore_read_freshness_lag
Tasa de error:
rate(assetcore_write_requests_total{status!="200"}[5m])
Ejemplos de Alertas
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"
Referencias relacionadas
- Conceptos básicos de implementación - Ejecución de demonios
- Frescura y Repetición - Comprendiendo el retraso
- API HTTP - Referencia de endpoints