Monitorización

Métricas para Prometheus, comprobación de salud y estado de los rangos.

Cada nodo sirve en su puerto de administración (27200 por defecto) las métricas y la comprobación de salud.

Requisitos

  • Acceso de red al puerto de administración de cada nodo.
  • Para /metrics, el certificado de cliente de un usuario con el rol clusterMonitor.

/healthz

Responde 200 si el nodo sirve y 503 si no, sin cuerpo y sin credenciales. Úsalo en tu balanceador o tu orquestador.

/metrics

Responde en el formato de exposición de Prometheus, así que cualquier servidor de Prometheus puede leerlo directamente. Pide un certificado de cliente de un usuario con el rol clusterMonitor; sin él, el nodo rechaza la petición.

MétricaQué mide
teseladb_upEl nodo está en marcha
teseladb_rangesRangos con réplica en este nodo
teseladb_range_applied_index{range}Última entrada aplicada de cada réplica
teseladb_range_leader{range}Si este nodo es el líder de ese rango
Shell
teseladb admin metrics

Con esa orden lees las mismas métricas desde la CLI, sin pasar por Prometheus, con las credenciales del --dbpath del nodo.

Rangos

Shell
teseladb admin ranges --collection tienda.pedidos

Muestra cada rango con sus límites, las réplicas que tiene y el nodo que lo lidera. Desde mongosh, serverStatus, currentOp, $collStats y el perfilador tienen la forma de MongoDB.

Comprobar

Shell
curl -s -o /dev/null -w "%{http_code}\n" --cacert ca.pem https://node-01:27200/healthz

La orden escribe 200 si el nodo sirve. Si escribe 503, el nodo está en marcha pero todavía no atiende peticiones.

Problemas frecuentes

  • Si /metrics rechaza la petición, falta el certificado de cliente o su usuario no tiene el rol clusterMonitor.
  • Si /healthz contesta 503, el nodo está en marcha pero todavía no sirve. Tu balanceador no debe mandarle tráfico hasta que conteste 200.

Ver también