mongot é um mecanismo de pesquisa baseado em Lucene, hospedado em JVM e mapeado para memória. Ele tem características operacionais diferentes de mongod:
Latência sensível ao armazenamento. A latência de disco de leitura aleatória afeta diretamente o desempenho da query e da indexação. A classe de armazenamento é uma das decisões de maior impacto para uma implantação.
Acesso ao índice mapeado por memória. A pressão do cache do sistema de arquivos se correlaciona com a latência da query de forma não linear. Pequenas deficiências de memória causam grande degradação da latência.
Orientado por replicação.
mongoté um consumidor downstream demongodfluxos de alteração. Atraso de replicação, leituras de oplog e integridade da conexão afetam a atualização do índice.Várias fases de carga de trabalho. A sincronização inicial, a mesclagem, a replicação de estado estável e a query sobrecarregam diferentes recursos. Um sinal que é saudável em uma fase pode indicar um problema em outra.
Categorias de sinal
categoria | O que ele diz a você |
|---|---|
Saúde | Se o processo |
Replicação | Se o processo |
Indexação | Se o processo mongot está criando e mantendo índices, se as fusões estão progredindo e se a sincronização inicial está progredindo. |
Query | Latência, taxa de transferência e taxa de erro em |
Pools de executores | Utilização do pool de threads e profundidade da fila. A saturação aqui prevê a degradação da latência da query. |
JVM | Métricas relacionadas a Heap, Garbage Collection e threads na JVM. |
Sistema | Métricas relacionadas à CPU, memória, E/S de disco, rede — no nível de processo ou contêiner. |
Armazenamento | Métricas relacionadas a IOPS, taxa de falha de página e espaço livre. |
Incorporação | Taxa de transferência e taxa de erro em relação ao ponto de extremidade do Voyage AI quando a embedding automatizada está habilitada. |
Principais sinais para mongot
Estes são os principais sinais a serem monitorados. Se você puder monitorar apenas alguns sinais, comece com estes:
Status de integridade e processo
Se o processo
mongotestá ativo ou não. Ummongotque está reiniciando não pode servir tráfego. Os loops de falha sinalizam que há um problema com a disponibilidade domongot.Se a integridade atingiu ou não o estado
SERVING. Ummongotque iniciou, mas nunca concluiu a inicialização, não pode responder a query.
Latência da query
50º percentil (p50) e 99º percentil (p99) de latência de query para
$searche$vectorSearch.Observe p99 especialmente porque as implantaçõesmongottendem a degradar não linearmente sob pressão de armazenamento ou memória. p99 mostra problemas antes de p50.Latência para solicitações de gerenciamento de índice, como
createSearchIndex,getSearchIndexese o estágio de agregação$listSearchIndexes. Picos nessas solicitações podem indicar quemongotestá ocupado ou inacessível demongod.
atraso de replicação
Tempo desde o último evento de alteração aplicado do mongod. Este sinal é exposto diretamente como
mongot_index_stats_indexing_replicationLagMs(por índice, milissegundos). Um pequeno atraso em estado estacionário, de subsegundo a segundos, é normal. No entanto, um atraso crescente indica quemongotnão consegue acompanhar. O atraso sustentado eventualmente sai do oplog e força uma ressincronização. Uma ressincronização é muito pior do que o próprio atraso, pois exige uma reconstrução completa do índice. Uma reconstrução completa do índice é computacionalmente cara e demorada.mongot_index_stats_*as métricas são emitidas por índice de pesquisa e só aparecem quando pelo menos um índice existe. Em uma nova implantação sem índices, a série de atraso de replicação está ausente em vez de zero. Isso é normal.
Progresso da indexação
Operações de indexação ativas e seu estado (
PENDING,BUILDING,READY,FAILED). As criações travadas indicam esgotamento de recursos ou um problema de dados.Taxa de transferência de mesclagem. Mesclagens são trabalho em segundo plano. Se as mesclagens ficarem atrasadas, a latência da query aumenta.
Saturação do pool de executores
Profundidade da fila para o executor de query e o executor de indexação. A profundidade da fila não zero sustentada indica saturação e que as query estão esperando por um thread de trabalho. Este é um aviso muito precoce de que a latência aumentará.
Saúde da JVM
Utilização de heap após a coleta de lixo. Um heap consistentemente acima de 85% após a coleta de lixo pode resultar em um erro
OutOfMemoryError.Tempo de pausa da coleta de lixo. Pausas longas do GC se traduzem diretamente em picos de latência de query.
Pressão de armazenamento
IOPS de disco sustentados acima do ponto de operação seguro do dispositivo é um sinal de que o armazenamento é o gargalo. O limite de aviso da classe de armazenamento é 1,000 IOPS sustentados como um sinalizador. Para obter detalhes, consulte Recomendações de classe de armazenamento para mongot.
Taxa de falhas na página. Falhas de página de pesquisa sustentadas acima de 1,000/s indicam que o SO está recuperando repetidamente páginas de índice do disco em vez de servi-las a partir do cache. Com IOPS elevados, este é o sinal canônico de pressão de memória no caminho crítico.
Espaço livre em disco no volume do índice
Ter menos de 20% livre no volume dataPath do mongot pode causar problemas de disponibilidade. As fusões podem exigir espaço em disco além do espaço ocupado pelo índice ativo. Se o volume for subdimensionado, isso poderá causar falhas silenciosas.
Sinais saudáveis
Uma implantação mongot saudável em estado estável tem os seguintes sinais:
O processo está ativo, a integridade é
SERVING.O atraso de replicação é consistentemente inferior a um segundo.
A latência da query p99 é estável ao longo dos dias e não está aumentando.
A profundidade da fila do pool do executor está consistentemente próxima de zero.
O heap pós-GC da JVM está bem abaixo do máximo configurado.
As operações de indexação terminam no tempo esperado e são concluídas em
READY.Nenhum erro no log do mongot além das mensagens benignas conhecidas.
Se todos esses forem verdadeiros, a implantação será considerada saudável. Se houver qualquer desvio, consulte a página relevante para métricas mais profundas para investigar.
Atlas vs. Observabilidade autogerenciada
Os usuários do Atlas têm:
A IU de métricas do Atlas Search.
Alertas gerenciados pelo MongoDB em um conjunto selecionado de limites.
Suporte Atlas com acesso direto a
mongotFTDC e logs.
Os usuários autogerenciados têm:
As métricas e os logs que você configura
mongotpara exportar.A plataforma de alerta que você conecta.
Responsabilidade pela captura e encaminhamento do FTDC para o suporte do MongoDB, se precisar de ajuda.
Os usuários autogerenciados devem configurar o monitoramento antes de entrar em produção.