Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Integraciones de herramientas de supervisión

Esta página describe cómo integrar las métricas y los registros de mongot con las plataformas de supervisión comunes. Estas instrucciones asumen que ya ejecuta una de estas herramientas y necesita la configuración específica de mongot. Esta página no enseña Prometheus, Grafana u otra plataforma desde cero.

Esta orientación está dirigida a ingenieros de confiabilidad del sitio y equipos de plataforma que integran mongot en una pila de observabilidad existente.

En la siguiente tabla se resumen las superficies que mongot expone para la supervisión:

Superficie
protocolo
Punto de conexión por defecto
Configurado en
notas

Métricas

HTTP, Prometheus text format

localhost:9946/metrics

metrics
.address

El config.default.yml incluido se vincula solo a localhost:9946. Anúlalo a 0.0.0.0:9946 para el scraping fuera del host. mongot no aplica ninguna autenticación por defecto. Proteja el endpoint en la capa de red.

Liveness

HTTP

localhost:8080/health

healthCheck
.address

Devuelve {"status":"SERVING"} después de que mongot vincule sus servicios.

Preparación

HTTP

localhost:8080/ready

healthCheck
.address

Devuelve {"status":"SERVING"} cuando mongot está listo para recibir tráfico. Esto significa que la replicación se inicializa y los índices del catálogo se pueden consultar. Si no existen índices, mongot informa que está listo.

Registros

stdout y stderr, o un archivo

Por configuración de registros

logging

JSON o texto, según la configuración.

FTDC

Flujo binario en disco

<storage.dataPath>/diagnostic.data/

advancedConfigs.ftdc

Activado por defecto. Ajuste o desactive con advancedConfigs.ftdc. Para obtener más información, consulte registros de mongot y FTDC.

Prometheus con Grafana es la pila de supervisión recomendada para la mayoría de las implementaciones autogestionadas. La pila es gratuita, ampliamente compatible y funciona directamente con el punto de conexión de métricas mongot. Prometheus funciona en las ediciones Community y Enterprise, y no requiere configuración de MongoDB Ops Manager.

Agregue una tarea de scraping a su configuración de Prometheus:

scrape_configs:
- job_name: mongot
scrape_interval: 15s
scrape_timeout: 10s
static_configs:
- targets:
- mongot-host-1.internal:9946
- mongot-host-2.internal:9946
labels:
deployment: prod
edition: ce

Para las implementaciones de Kubernetes que gestionado/gestionada MongoDB Controllers para Kubernetes Operator, utilice un recurso PodMonitor o ServiceMonitor con Prometheus Operator. Diríjase a los pods etiquetados app=<resource-name>-search:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: mongot
namespace: <mongot-namespace>
spec:
selector:
matchLabels:
app: <resource-name>-search
podMetricsEndpoints:
- port: metrics
interval: 15s

Las reglas de grabación reducen la repetición de PromQL y aceleran las query de Grafana. Las siguientes reglas utilizan los nombres de métricas que expone mongot autogestionado:

groups:
- name: mongot_recording
interval: 30s
rules:
- record: mongot:search_latency_p99
expr: max(mongot_command_searchCommandTotalLatency_seconds{quantile="0.99"})
- record: mongot:vector_search_latency_p99
expr: max(mongot_command_vectorSearchCommandTotalLatency_seconds{quantile="0.99"})
- record: mongot:search_rate:rate5m
expr: sum(rate(mongot_command_searchCommandTotalLatency_seconds_count[5m]))
- record: mongot:search_failure_rate:rate5m
expr: sum(rate(mongot_command_searchCommandFailure_total[5m]))
- record: mongot:replication_lag_ms:max
expr: max(mongot_index_stats_indexing_replicationLagMs)
- record: mongot:heap_utilization_post_gc
expr: mongot_jvm_gc_live_data_size_bytes / mongot_jvm_gc_max_data_size_bytes
- record: mongot:gc_pause_worst
expr: max(mongot_jvm_gc_pause_seconds_max)

Traduzca las alertas recomendadas en reglas de alerta de Prometheus. Por ejemplo:

groups:
- name: mongot_alerts
rules:
- alert: MongotDown
expr: up{job="mongot"} == 0
for: 1m
labels:
severity: page
annotations:
summary: "mongot is down ({{ $labels.instance }})"
- alert: MongotReplicationLagGrowing
expr: deriv(max(mongot_index_stats_indexing_replicationLagMs)[15m:1m]) > 500
for: 10m
labels:
severity: page
- alert: MongotHeapPressure
expr: mongot:heap_utilization_post_gc > 0.85
for: 5m
labels:
severity: page

Para traducir el conjunto completo de alertas a PromQL, consulte Alertas recomendadas para mongot.

Un tablero de Grafana inicial para mongot debe incluir los siguientes grupos de paneles:

  • Proceso: tiempo de actividad, recuento de reinicios, CPU y memoria residente.

  • JVM: heap utilizado en comparación con el máximo, heap posterior a la recolección de elementos no utilizados, tiempo de pausa de la recolección de elementos no utilizados e hilos.

  • Replicación: estado actual, atraso en milisegundos y tasa, y eventos aplicados por segundo.

  • Indexación: compilaciones activas, estado por índice, errores de indexación y retraso de fusión.

  • Query: tasa por operador, latencia p50, p95 y p99 por operador, y tasa de error.

  • Ejecutores: profundidad de la cola por grupo y tareas rechazadas.

  • Almacenamiento: bytes libres, IOPS y tasa de fallos de página.

  • Incrustación (si está habilitada): tasa de solicitud, latencia, errores y rendimiento de tokens.

Si su organización estandariza en OpenTelemetry, OpenTelemetry Collector puede ingerir métricas mongot desde el punto final de Prometheus y reenviarlas a cualquier backend compatible con OTLP:

receivers:
prometheus:
config:
scrape_configs:
- job_name: mongot
scrape_interval: 15s
static_configs:
- targets:
- localhost:9946
exporters:
otlphttp:
endpoint: https://<your-otel-backend>
service:
pipelines:
metrics:
receivers:
- prometheus
exporters:
- otlphttp

Este patrón es independiente del proveedor. La misma configuración del recopilador funciona para Honeycomb, Grafana nube, New Relic y otros backend.

Para reenviar registros, configure mongot para que escriba JSON en stdout. El recopilador puede analizar los campos estructurados y enrutar los registros a su backend.

mongot guarda registros JSON estructurados en stdout y stderr por defecto. Reenvíe stdout a su plataforma de registro centralizada e ingiera los registros como JSON.

Fluent Bit y Vector funcionan para la colección de registros mongot. Trate los registros como un flujo etiquetado. Para aprender qué patrones de registro son más importantes, consulte mongot Logs y FTDC.

Para las implementación host en AWS, el agente de CloudWatch puede seguir directamente el archivo de registro. Cree un filtro de métricas de CloudWatch en patrones de registro clave, como Exception requiring resync, para convertir evento de registro en métricas.

mongot expone dos puntos finales HTTP en el puerto 8080 por defecto:

Endpoint
Usar para
Significado

/health

Liveness

mongot ha vinculado sus servicios. Utilice este endpoint para detectar un proceso bloqueado o con fallas. No indica que mongot pueda servir queries.

/ready

Preparación

mongot ha terminado de inicializar la replicación de índices. Utilice este endpoint para controlar el tráfico en un pod.

Ambos puntos finales devuelven JSON con HTTP 200. Trate {"status":"SERVING"} como saludable y {"status":"NOT_SERVING"} como no saludable. Un parámetro de consulta no válido devuelve HTTP 400 con {"error":"BAD_REQUEST"}.

Al igual que el punto de conexión de métricas, los puntos de conexión /health y /ready no están autenticados por defecto. Protéjalos en la capa de red.

En Kubernetes, asigne la sonda de actividad a /health y la sonda de preparación a /ready:

livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3

Si utiliza /health para ambas sondas, un pod puede recibir tráfico antes de que se inicialicen sus índices, porque /health devuelve SERVING tan pronto como se vinculan los servicios. La división de dos puntos finales existe para separar estas señales.

Cuando el MongoDB Controllers for Kubernetes Operator gestiona más de un pod mongot, aprovisiona un balanceador de carga por defecto y enruta el tráfico en función del punto final /ready. Para implementaciones autogestionadas que ejecutan su propio balanceador de carga delante de varias instancias mongot, configure el balanceador de carga para enrutar el tráfico solo a las instancias que devuelvan SERVING en /ready.

Para mantener un pod listo incluso cuando algunos índices no se inicializan, establezca la ruta de la sonda de preparación en /ready?allowFailedIndexes=true. Esta configuración es una compensación deliberada, ya que los índices fallidos devuelven resultados vacíos para las consultas que los alcanzan.

Si su implementación ejecuta más de una instancia de mongot, cada instancia expone su propio punto de conexión de métricas. Extraiga cada instancia individualmente y, a continuación, utilice agregaciones de Prometheus, como sum, max y avg, para ver una vista combinada de las métricas.

Rastree el atraso de la replicación, la profundidad de la cola del ejecutor y la latencia de la query para cada instancia y en conjunto. Una sola instancia saturada puede degradar la latencia de las query que sirve, y los promedios de toda la flota pueden ocultar esta degradación.

Para clústeres particionados, etiquete cada raspado con el nombre de la partición para que pueda acumular las métricas por partición.

Cuando abra un caso de soporte de MongoDB, adjunte la captura FTDC de la instancia mongot afectada. Para conocer el procedimiento de captura, consulte Registros de mongot y FTDC.