Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Integrações de ferramentas de monitoramento

Esta página descreve como integrar métricas e logs mongot com plataformas de monitoramento comuns. Estas instruções pressupõem que você já executa uma dessas FERRAMENTAS e precisa da configuração específica do mongot. Esta página não ensina Prometheus, Grafana ou outra plataforma do zero.

Esta orientação é direcionada a engenheiros de confiabilidade de site e equipes de plataforma que integram mongot em uma pilha de observabilidade existente.

A tabela a seguir resume as superfícies que o mongot expõe para monitoramento:

Superfície
protocolo
Ponto de extremidade padrão
Configurado em
Notas

Métricas

HTTP, Prometheus text format

localhost:9946/metrics

metrics
.address

O config.default.yml incluído vincula-se apenas a localhost:9946. Substitua-o por 0.0.0.0:9946 para scraping fora do host. mongot não aplica autenticação por padrão. Proteja o ponto de extremidade na camada de rede.

Liveness

HTTP

localhost:8080/health

healthCheck
.address

Retorna {"status":"SERVING"} depois que mongot vincula seus serviços.

Prontidão

HTTP

localhost:8080/ready

healthCheck
.address

Retorna {"status":"SERVING"} quando mongot estiver pronto para receber tráfego. Isso significa que a replicação é inicializada e os índices de catálogo podem ser consultados. Se não houver índices, mongot relata que está pronto.

Registros

stdout e stderr, ou um arquivo

Por configuração de registro

logging

JSON ou texto, dependendo da configuração.

FTDC

Fluxo binário em disco

<storage.dataPath>/diagnostic.data/

advancedConfigs.ftdc

Habilitado por padrão. Ajuste ou desative com advancedConfigs.ftdc. Para saber mais, consulte Logs mongot e FTDC.

Prometheus com Grafana é a pilha de monitoramento recomendada para a maioria das implantações autogerenciadas. A pilha é gratuita, amplamente suportada e funciona diretamente com o ponto de extremidade de métricas mongot. O Prometheus funciona nas edições Community e Enterprise e não requer configuração do MongoDB Ops Manager.

Adicione uma tarefa de raspagem à sua configuração do 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 implantações do Kubernetes que o operador MongoDB Controllers for Kubernetes gerencia, use um recurso PodMonitor ou ServiceMonitor com o operador Prometheus. Direcione os pods rotulados 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

As regras de gravação reduzem a repetição do PromQL e tornam as queries do Grafana mais rápidas. As seguintes regras usam os nomes de métricas que o mongot autogerenciado expõe:

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)

Traduza os alertas recomendados em regras de alerta do Prometheus. Por exemplo:

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 traduzir o conjunto completo de alertas para PromQL, consulte Alertas recomendados para mongot.

Um dashboard Grafana inicial para mongot deve incluir os seguintes grupos de painéis:

  • Processo: tempo de atividade, contagem de reinícios, CPU e memória residente.

  • JVM: heap usado em comparação com o máximo, heap pós-GC, tempo de pausa do GC e threads.

  • Replicação: estado atual, atraso em milissegundos e taxa, e eventos aplicados por segundo.

  • Indexação: criações ativas, status por índice, falhas de indexação e backlog de fusão.

  • Query: taxa por operador, latência p50, p95 e p99 por operador e taxa de erro.

  • Executores: profundidade da fila por pool e tarefas rejeitadas.

  • Armazenamento: bytes livres, IOPS e taxa de falha de página.

  • Embedding (se ativado): taxa de solicitações, latência, erros e taxa de transferência de tokens.

Se sua organização padronizar no OpenTelemetry, o OpenTelemetry Collector poderá ingerir métricas mongot do ponto de extremidade do Prometheus e encaminhá-las para qualquer backend compatível com 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 padrão é neutro em relação ao provedor. A mesma configuração de coletor funciona para Honeycomb, Grafana Cloud, New Relic e outros backends.

Para encaminhar logs, configure mongot para gravar JSON no stdout. O coletor pode então analisar os campos estruturados e rotear os logs para o seu backend.

mongot grava logs JSON estruturados para stdout e stderr por padrão. Encaminhe stdout para sua plataforma de log centralizada e ingira os logs como JSON.

O Fluent Bit e o Vector funcionam para a coleta de logs mongot. Trate os logs como um fluxo com tag. Para saber quais padrões de log são mais importantes, consulte Logs mongot e FTDC.

Para implantações hospedadas na AWS, o agente CloudWatch pode seguir o arquivo de log diretamente. Crie um filtro de métricas do CloudWatch em padrões de log importantes, como Exception requiring resync, para converter eventos de log em métricas.

mongot expõe dois pontos de extremidade HTTP na porta 8080 por padrão:

Endpoint
Usar para
Significado

/health

Liveness

mongot vinculou seus serviços. Use este ponto de extremidade para detectar um processo travado ou travado. Isso não indica que o mongot pode servir às query.

/ready

Prontidão

mongot concluiu a inicialização da replicação do índice. Use este ponto de extremidade para controlar o tráfego em um pod.

Ambos os pontos de extremidade retornam JSON com HTTP 200. Trate {"status":"SERVING"} como saudável e {"status":"NOT_SERVING"} como não saudável. Um parâmetro de query inválido retorna HTTP 400 com {"error":"BAD_REQUEST"}.

Assim como o ponto de extremidade de métricas, os pontos de extremidade /health e /ready não são autenticados por padrão. Proteja-os na camada de rede.

No Kubernetes, mapeie a sonda de atividade para /health e a sonda de prontidão para /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

Se você usar /health para ambas as sondas, um pod poderá receber tráfego antes que seus índices sejam inicializados, porque /health retorna SERVING assim que os serviços são vinculados. A divisão de dois pontos de extremidade existe para separar esses sinais.

Quando o MongoDB Controllers for Kubernetes Operator gerencia mais de um pod mongot, ele provisiona um balanceador de carga padrão e roteia o tráfego com base no ponto de extremidade /ready para você. Para implantações autogerenciadas que executam seu próprio balanceador de carga na frente de várias instâncias mongot, configure o balanceador de carga para rotear o tráfego apenas para instâncias que retornam SERVING em /ready.

Para manter um pod pronto mesmo quando alguns índices não são inicializados, defina o caminho da sonda de prontidão como /ready?allowFailedIndexes=true. Essa configuração é uma compensação deliberada, porque os índices com falha retornam resultados vazios para queries que os alcançam.

Se sua implantação executar mais de uma instância mongot, cada instância exporá seu próprio ponto de extremidade de métricas. Raspe cada instância individualmente e, em seguida, use agregações do Prometheus, como sum, max e avg, para ver uma visualização combinada das métricas.

Acompanhe o atraso de replicação, a profundidade da fila do executor e a latência da query para cada instância e em agregação. Uma única instância saturada pode degradar a latência das query que ela atende, e as médias de toda a frota podem ocultar essa degradação.

Para clusters sharded, rotule cada raspagem com o nome do shard para que você possa acumular as métricas por shard.

Ao abrir um caso de suporte do MongoDB, anexe a captura FTDC da instância mongot afetada. Para saber o procedimento de captura, consulte mongot Logs e FTDC.