Menu Docs
Página inicial do Docs
/
MongoDB Ops Manager
/ /

Integrar com Prometeus

Nesta página

  • Pré-requisitos
  • Procedimento
  • Configurações de exemplo
  • Métricas de desempenho disponíveis para Prometeus
  • Rótulos de métrica do MongoDB
  • Métricas de informação do MongoDB
  • Métricas de hardware
  • Rótulos de métrica de hardware

Prometheus coleta métricas de destinos configurados em determinados intervalos, avalia expressões de regras, exibe os resultados e pode acionar alertas quando observa condições específicas.

Nossa integração permite que você configure o Ops Manager para enviar dados métricos sobre sua implantação para o Prometeus instância.

  • Prometeu a integração está disponível em clusters gerenciados porautomação que usam o MongoDB Agent 12.0.15.7646 ou posterior. MongoDB Agent 12.0.15.7646 é lançado com o Ops Manager 6.0.7.

  • Tenha um Prometeus funcional instância. Para configurar uma instância de trabalho, consulte o Guia de Instalação.

  • (Opcional) Usar Grafana para visualizar suas métricas de Prometeus.

Para integrar o Ops Manager ao Prometheus:

1
  1. Se ainda não estiver exibido, selecione a organização que contém o projeto desejado no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Ao lado do menu Projects , expanda o menu Options e clique em Integrations.

2
3

Importante

Copie seu nome de usuário e senha em um local seguro. Você não pode acessar a senha depois de sair dessa tela.

4

Dica

O valor padrão, 0.0.0.0:9216, coleta métricas na porta 9216 em todos os endereçosIPv4 na máquina local.

5

Se você habilitar essa configuração, o Ops Manager garantirá que sua instância do Prometheus use https para raspar métricas.

Campos
Descrição
Caminho do arquivo da chave do certificado TLS

PEM caminho do arquivo que contém o certificado e a chave necessários para ativar um endpoint de limpeza Prometheus https .

Você é responsável pelo seguinte:

  • Emissão e renovação de arquivos de chave de certificado TLS.

  • Verificando se o endpoint foi iniciado corretamente nos registros do agente de automação.

tlsCertificateKeyFilePassword
Obrigatório se o arquivo de chave do certificado estiver criptografado.
6
Método de descoberta
Descrição
Este método requer o Prometeus v2.28 e posterior. Ele gera o scrap_config parte do seu arquivo de configuração para descobrir alvos em um endpoint HTTP.

Este método permite que o Prometheus leia documentos YAML ou JSON para configurar os destinos dos quais extrair.

Você é responsável por fornecer os alvos fazendo uma solicitação à API de descoberta e armazenando seus resultados em um arquivo targets.json.

Para fazer a solicitação, substitua o texto do placeholder em uma das abas a seguir ou crie seu próprio script em outro idioma.

# Sets the `Authorization` header on every scrape
# request with the username and password from the
# previous step. The URL that Prometheus fetches the
# targets from.
# Replace the <group-id> with the project ID of your
# Atlas instance.
curl --header 'Accept: application/json' \
--user <username>:<password> \
--request GET "https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"

Se você precisar instalar a requests biblioteca , consulte o Guia de Instalação.

import time, json, requests
# This script sets the `Authorization` header on every
# scrape request with the configured username and
# password. Then it tells Prometheus to fetch targets
# from the specified URL.
#
# Note: Replace the <username> and <password> with the
# values in the previous step, and <group-id> with the
# project ID of your Atlas instance.
basic_auth_user="<username>"
basic_auth_password="<password>"
discovery_api_url="https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"
# The script updates your targets.json file every
# minute, if it successfully retrieves targets.
#
# Note: Replace the <path-to-targets.json> with the
# path to your targets.json file.
starttime = time.time()
while True:
r = requests.get(discovery_api_url, auth=(basic_auth_user, basic_auth_password))
if r.status_code == 200:
with open('<path-to-targets.json>', 'w') as f:
json.dump(r.json(), f)
time.sleep(60.0 - ((time.time() - starttime) % 60.0))

Para saber mais sobre a API de descoberta, consulte Retornar as últimas segmentações para Prometeus.

7
8
  1. Copie o trecho gerado no scrape_configs seção do seu arquivo de configuração e substitua o texto do espaço reservado.

    Para obter um exemplo do arquivo de configuração em qualquer um dos métodos, consulte Configurações de exemplo.

  2. Reinicie sua instância Prometheus.

  3. Na sua instância do Prometheus, clique em Status na barra de navegação superior e clique em Targets para ver as métricas de sua implantação.

A seguir, mostramos exemplos do arquivo de configuração quando você usa o método HTTP Service Descoberta de ou Descoberta de Serviço de Arquivo .

O arquivo de configuração em ambos os métodos contém os seguintes campos:

Campo
Descrição
scrape_interval
Tempo que indica a frequência de raspagem dos alvos. Esta configuração suporta um tempo mínimo de 10s.
job_name
Etiqueta legível por humanos atribuída a métricas raspadas.
metrics_path
Caminho do recurso HTTP que indica onde buscar métricas dos destinos.
scheme
Seu esquema de protocolo Prometheus configurado para solicitações, http ou https. Se você configurar o https, deverá especificar o tlsPemPath.
basic_auth
Cabeçalho de autorização para usar em cada solicitação de raspagem.

O método de descoberta de HTTP Service também contém o campo http_sd_configs com os seguintes subcampos:

Campo
Descrição
url
URL a partir da qual Prometheus obtém os alvos.
refresh_interval
Hora que indica quando fazer query novamente do endpoint.
basic_auth
Credenciais a serem usadas para autenticação no servidor API.
global:
scrape_interval: 15s
scrape_configs:
- job_name: "CM-Testing-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme : https
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv
http_sd_configs:
- url: https://cloud.mongodb.com/prometheus/v1.0/groups/61e6e34e93eac1632d39f457/discovery
refresh_interval: 60s
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv

O método Descoberta de Serviço de Arquivo também contém o campo file_sd_configs com o seguinte subcampo:

Campo
Descrição
files
Lista que contém os arquivos dos quais extrair os alvos de raspagem de métricas.
global:
scrape_interval: 15s
scrape_configs:
- job_name: "CM-Testing-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme : https
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv
file_sd_configs:
- files:
- /usr/local/etc/targets.json

As seguintes métricas estão disponíveis quando você usa o Prometeus integração com seu MongoDB Atlas cluster:

Cada métrica MongoDB contém os seguintes rótulos:

etiqueta
Descrição
group_id
Sequência única de dígitos hexadecimais que identifica o projeto.
org_id
Sequência única de dígitos hexadecimais que identifica a organização.
cl_role
Rótulo legível por humanos que define a função do cluster.
cl_name
Etiqueta legível por humanos que identifica o cluster.
rs_nm
Etiqueta legível por humanos que identifica o conjunto de réplicas.
rs_state
process_port
Porta na qual o processo é executado.

mongodb_info é um medidor que sempre tem o valor de 1. Essa métrica contém todos os rótulos de métrica do MongoDB e também os seguintes rótulos:

etiqueta
Descrição
mongodb_version
String que representa as versões principais, secundárias e de patch.
replica_state_name
process_type
String que indica o processo em execução. Seus valores podem ser mongod, mongos ou config.

Observação

Você também pode visualizar descrições de cada métrica de hardware no navegador de expressão Prometheus.

Nome
Sistema operacional
Tipo
Descrição
hardware_system_cpu_nice
Unix, darwin
Contador
Tempo gasto no modo de usuário com baixa prioridade.
hardware_system_cpu_io_wait
Unix
Contador
Tempo aguardando a conclusão da E/S.
hardware_system_cpu_irq
Unix
Contador
O tempo gasto na manutenção interrompe.
hardware_system_cpu_soft_irq
Unix
Contador
Tempo gasto na manutenção do softirq.
hardware_system_cpu_steal
Unix
Contador
Tempo gasto em outros sistemas operacionais ao executar em um ambiente virtual.
hardware_system_cpu_guest
Unix
Contador
Tempo gasto executando uma CPU virtual para os sistemas operacionais convidados sob o controle do kernel Linux.
hardware_system_cpu_guest_nice
Unix
Contador
Tempo gasto administrando um convidado com uma gentileza ajustada.
hardware_system_cpu_kernel_milliseconds
Todos
Contador
Tempo gasto no modo de sistema.
hardware_system_cpu_user_milliseconds
Todos
Contador
Tempo gasto no modo de usuário.
hardware_disk_metrics_weighted_time_io
Unix
Contador
Tempo ponderado gasto fazendo E/S.
hardware_disk_metrics_physical_write_count
Unix
Contador
Número de E/S de gravação física processadas.
hardware_disk_metrics_physical_read_count
Unix
Contador
Número de E/S de leitura física processadas.
hardware_disk_metrics_total_time
Unix
Contador
Total de vezes que este dispositivo de bloqueio estiver ativo.
hardware_disk_metrics_idle_time
Windows
Contador
Tempo gasto na tarefa ociosa.
hardware_disk_metrics_disk_space_free_bytes
Todos
Medidor
Espaço em disco disponível no sistema de arquivos montado.
hardware_disk_metrics_disk_space_used_bytes
Todos
Medidor
Espaço em disco usado no sistema de arquivos montado.
hardware_disk_metrics_read_count
Todos
Contador
Número de E/S lidas processadas.
hardware_disk_metrics_read_time_milliseconds
Todos
Contador
Tempo total de espera para solicitações de leitura.
hardware_disk_metrics_write_count
Todos
Contador
Número de E/S de gravação processadas.
hardware_disk_metrics_write_time_milliseconds
Todos
Contador
Tempo total de espera para solicitações de gravação.
hardware_process_cpu_children_user
Unix
Contador
Período programado no modo de usuário para que esse processo aguarde as crianças.
hardware_process_cpu_children_kernel
Unix
Contador
Período agendado no modo kernel para que esse processo aguarde pelos filhos.
hardware_process_cpu_kernel_milliseconds
Todos
Contador
Período programado no modo kernel para esse processo.
hardware_process_cpu_user_milliseconds
Todos
Contador
Período agendado no modo de usuário para esse processo.
hardware_system_vm_page_swap_in
Unix
Contador
Número de páginas que o sistema trocou do disco.
hardware_system_vm_page_swap_out
Unix
Contador
Número de páginas que o sistema trocou para o disco.
hardware_system_memory_mem_total
Unix
Medidor
RAM utilizável total (RAM física menos alguns bits reservados e o código binário do kernel).
hardware_system_memory_mem_free
Unix
Medidor
Soma de LowFree + HighFree.
hardware_system_memory_mem_available
Unix
Medidor
Uma estimativa de quanta memória está disponível para iniciar novos aplicativos, sem troca.
hardware_system_memory_buffers
Unix
Medidor
Armazenamento temporário para blocos de disco brutos que não devem ser tremendamente grandes.
hardware_system_memory_cached
Unix
Medidor
Cache na memória para arquivos lidos do disco. Isso não inclui SwapCached.
hardware_system_memory_swap_total
Unix
Medidor
Quantidade total de espaço disponível para troca.
hardware_system_memory_swap_free
Unix
Medidor
Quantidade total de espaço de troca não utilizado.
hardware_system_memory_shared_mem
Unix
Medidor
Quantidade de memória consumida em sistemas de arquivos cujo conteúdo reside na memória virtual.
hardware_system_memory_swap_free_kilobytes
Todos
Medidor
Quantidade total de espaço de troca não utilizado.
hardware_system_memory_swap_total_kilobytes
Todos
Medidor
Quantidade total de espaço disponível para troca.
hardware_platform_num_logical_cpus
Todos
Medidor
Número de CPUs lógicas utilizáveis pelo processo atual.
hardware_system_network_eth0_bytes_in_bytes
Todos
Contador
Número de bytes de dados recebidos pela interface.
hardware_system_network_eth0_bytes_out_bytes
Todos
Contador
Número de bytes de dados transmitidos pela interface.
hardware_system_network_lo_bytes_in_bytes
Todos
Contador
Número de bytes de dados recebidos pela interface.
hardware_system_network_lo_bytes_out_bytes
Todos
Contador
Número de bytes de dados transmitidos pela interface.

Cada métrica de hardware contém os seguintes rótulos:

etiqueta
Descrição
group_id
Sequência única de dígitos hexadecimais que identifica o projeto.
org_id
Sequência única de dígitos hexadecimais que identifica a organização.
process_port
Porta na qual o processo é executado.
disk_name
Etiqueta legível para humanos que identifica o disco.

Voltar

Integrar com PagerDuty