Quando seus gerenciadores de filas do IBM MQ são executados como pods no Kubernetes, você precisa de uma solução de monitoramento que possa descobri-los e rastreá-los automaticamente à medida que seu cluster é dimensionado. Este guia mostra como implantar um coletor que encontra seus gerenciadores de filas automaticamente e envia suas métricas para o New Relic sem nenhuma alteração manual de configuração.
Você pode usar a Distribution of OpenTelemetry do New Relic (NRDOT) ou o OpenTelemetry Collector Contrib — ambos usam a mesma configuração e abordagem de descoberta automática. O coletor descobre os pods do gerenciador de filas por anotação, coleta suas métricas e envia os dados organizados para o New Relic, onde aparecem como entidades IBMMQ_MANAGER e IBMMQ_QUEUE com dashboards prontos para uso. Quando você adiciona novos gerenciadores de filas, o coletor os encontra automaticamente — nenhuma atualização de configuração é necessária.
Dica
Se os seus gerenciadores de filas forem executados em hosts tradicionais, consulte Monitorar o IBM MQ Auto-hospedado.
Antes de você começar
Você precisará desses componentes antes de configurar o coletor:
- Conta do New Relic com uma chave de licençaválida
- Endpoint OTLP da New Relic para sua região
- Cluster do Kubernetes com acesso
kubectle Helm instalado - Pods do gerenciador de filas do IBM MQ em execução com sidecars do exportador mq-metric-samples expondo métricas na porta
9157 - Pods do gerenciador de filas anotados com as anotações obrigatórias do Prometheus
Dica
Recomendamos ativar as estatísticas MQI em seus gerenciadores de filas usando ALTER QMGR STATMQI(ON) STATQ(ON) para obter melhores métricas de taxas de transferência.
Configurar o monitoramento do IBM MQ
Siga estas etapas para implantar o coletor e começar a enviar métricas do IBM MQ para o New Relic:
Criar segredo de credenciais da New Relic
Crie um segredo do Kubernetes para armazenar suas credenciais do New Relic com segurança. O coletor lê esses valores em tempo de execução, mantendo informações confidenciais fora dos arquivos de configuração.
Certifique-se de que o namespace
ibmmqexista:bash$kubectl get namespace ibmmq >/dev/null 2>&1 || kubectl create namespace ibmmqCrie o secret de credenciais, substituindo
<YOUR_LICENSE_KEY>pela sua chave de licença real:bash$kubectl create secret generic newrelic-otlp-secret \>--namespace ibmmq \>--from-literal=NEW_RELIC_LICENSE_KEY="<YOUR_LICENSE_KEY>" \>--from-literal=NEW_RELIC_OTLP_ENDPOINT="https://otlp.nr-data.net:4318" \>--dry-run=client -o yaml | kubectl apply -f -Para contas da UE, use
https://otlp.eu01.nr-data.net:4318como o valor do endpoint.
Configurar os valores do Helm do coletor
Crie um arquivo values.yaml local com a configuração do coletor. Este arquivo contém todas as configurações necessárias para implantar o coletor via Helm chart do OpenTelemetry.
Cuidado
Não altere TARGET_NAME após a implantação inicial. Esse valor forma o primeiro segmento de cada GUID de entidade IBMMQ_MANAGER e IBMMQ_QUEUE. Alterá-lo cria novas entidades e deixa as existentes órfãs, quebrando dashboards e alertas.
O que esta configuração faz
Essa configuração cria um pipeline de descoberta automática que encontra pods do gerenciador de filas do IBM MQ e envia suas métricas para o New Relic. O pipeline de processamento é idêntico à configuração do host, mas usa a descoberta automática de pod em vez de destinos estáticos:
| Seção | Função |
|---|---|
prometheus/ibmmq receptor | Descobre automaticamente os pods do gerenciador de filas no namespace ibmmq que têm as anotações necessárias. Conecta-se ao endpoint de métricas de cada pod e coleta dados do IBM MQ a cada 60 segundos. |
filter/ibmmq-overhead | Remove as métricas próprias internas do exportador (como go_* e process_*) que não contêm dados do IBM MQ, otimizando os custos de ingestão de dados. |
filter/ibmmq-queues | Exclui as filas internas do sistema IBM MQ (SYSTEM.* e AMQ.*) para que apenas as filas do aplicativo se tornem entidades no New Relic. |
transform/ibmmq-cleanup | Componente crítico que mapeia métricas para as entidades apropriadas do IBM MQ no New Relic. Sem isso, os dados aparecem como métricas genéricas do coletor em vez de entidades IBMMQ_MANAGER e IBMMQ_QUEUE com dashboards e alertas. |
memory_limiter/ibmmq | Limita o uso de memória a 400MB (abaixo do limite de 512Mi do contêiner) para evitar que o pod do coletor seja eliminado pelo Kubernetes. |
batch/ibmmq | Agrupa as métricas antes da transmissão para reduzir a sobrecarga da rede, agrupando até 1.000 pontos de dados por solicitação. |
otlphttp/ibmmq exportador | Exporta métricas processadas para o New Relic usando sua chave de licença para autenticação e o endpoint regional configurado. |
Configurações importantes do Kubernetes:
| Contexto | Por que é necessário |
|---|---|
replicaCount: 1 | Com kubernetes_sd e sem TargetAllocator, cada réplica faz o scrape de cada destino, de modo que mais de uma réplica conta em dobro (e cobra em dobro) as métricas. Para HA, divida os destinos em shards com o OpenTelemetry TargetAllocator. |
mode: deployment (não daemonset) | Um DaemonSet executa kubernetes_sd em cada nó e produz N cópias de cada métrica para um cluster de N nós. |
clusterRole.create: true | kubernetes_sd precisa de get/list/watch nos pods; sem isso, a API retorna 403 Forbidden e o receptor descobre zero destinos (o coletor inicia, mas não emite nada). |
service.enabled: false | Este coletor não possui receptores de entrada, portanto, o chart tentaria criar um Service de porta zero e falharia no momento da instalação. A autotelemetria em :8888 ainda é acessível via kubectl port-forward. |
replacement: $$1:$$2 (regra de relabel 4) | O $$ escapa a expansão da variável de ambiente ${...} do carregador de configuração do OTel para que o mecanismo do Prometheus receba a sintaxe literal de grupo de captura $1:$2. Um único $1:$2 seria consumido como uma variável de ambiente vazia e quebraria a construção de endereço. |
image.tag: "latest" | Bom para testes; use uma versão específica para produção. |
Instalar o coletor com o Helm
Adicione o repositório Helm do OpenTelemetry e instale o coletor no namespace ibmmq usando o values.yaml que você criou na etapa anterior:
$helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts$helm repo update$
$helm upgrade --install ibmmq-collector open-telemetry/opentelemetry-collector \> --namespace ibmmq \> --create-namespace \> --values values.yamlSe o pod do coletor não alcançar 1/1 Running, consulte Resolução de problemas abaixo.
Verifique a implantação
Confirme se o pod do coletor está em execução:
$kubectl -n ibmmq rollout status deploy/ibmmq-collector-opentelemetry-collector --timeout=180s$kubectl -n ibmmq get podsO pod do coletor deve mostrar 1/1 Running. Para confirmar que ele está realmente descobrindo e coletando pods, faça o encaminhamento de porta do seu endpoint de autotelemetria (exposto em :8888, acessível apenas via port-forward porque o Service de entrada está desativado) e verifique os contadores aceitos/exportados:
$kubectl -n ibmmq port-forward deploy/ibmmq-collector-opentelemetry-collector 8888:8888 &$curl -s http://localhost:8888/metrics | \> grep -E 'otelcol_(receiver_accepted|exporter_sent|exporter_send_failed)_metric_points'$kill %1 2>/dev/nullotelcol_receiver_accepted_metric_points maior que 0 confirma que o coletor encontrou e coletou dados de pelo menos um pod Running anotado; otelcol_exporter_send_failed_metric_points deve permanecer em 0 (qualquer valor diferente de zero aponta para um problema de conexão OTLP ou de credenciais).
Em seguida, confirme as métricas e entidades do IBM MQ no New Relic usando as consultas de verificação em encontrar e consultar seus dados. Para o significado dos valores de status, consulte a referência de código de status do MQ.
Visualize seus dados no New Relic
Assim que o pod do coletor estiver em execução e as métricas estiverem fluindo, você verá seus gerenciadores de fila como entidades IBMMQ_MANAGER no New Relic, com suas filas como entidades IBMMQ_QUEUE filhas. Para detalhes sobre como encontrar seus dados, executar consultas e configurar dashboards e alertas, consulte Visualizar e consultar seus dados.