AvisoO suporte a OpenMetrics na plataforma Temporal está disponível em Prévia Pública. Consulte a documentação da Temporal para mais informações.
ResumoMonitore métricas da Temporal Cloud no ClickStack usando o receiver Prometheus do OTel. Inclui um dashboard pré-configurado.
Integração com o Temporal Cloud existente
Pré-requisitos
- Instância do ClickStack em execução
- Conta existente no Temporal Cloud
- Acesso à rede HTTP do ClickStack para o seu Temporal Cloud
Criar chave do Temporal Cloud
Certifique-se de ter uma API key do Temporal Cloud. Você pode criá-la seguindo o guia de autenticação na documentação do Temporal.Crie uma configuração personalizada do OTel collector
O ClickStack permite estender a configuração básica do OpenTelemetry collector montando um arquivo de configuração personalizado e definindo uma variável de ambiente. A configuração personalizada é mesclada à configuração básica gerenciada pelo HyperDX via OpAMP.Crie um arquivo chamadotemporal-metrics.yaml com a seguinte configuração:temporal-metrics.yaml
- Conecta ao Temporal Cloud em
metrics.temporal.io - Coleta métricas a cada 60 segundos
- Coleta métricas essenciais de desempenho
- Define o atributo de recurso
service.nameobrigatório de acordo com as convenções semânticas do OpenTelemetry - Encaminha as métricas para o exportador do ClickHouse por meio de um pipeline dedicado
- Na configuração personalizada, você define apenas novos receivers, processors e pipelines
- Os processors
memory_limiterebatche o exportadorclickhousejá estão definidos na configuração base do ClickStack — você só os referencia pelo nome - O processor
resourcedefine o atributoservice.nameobrigatório de acordo com as convenções semânticas do OpenTelemetry - Para várias contas do Temporal Cloud, personalize
service.namepara diferenciá-las (por exemplo,"temporal-prod"e"temporal-dev")
Configure o ClickStack para carregar uma configuração personalizada
Para habilitar uma configuração personalizada do collector na implantação existente do ClickStack, você deve:- Montar o arquivo de configuração personalizada em
/etc/otelcol-contrib/custom.config.yaml - Definir a variável de ambiente
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Montar o arquivo
temporal.keyem/etc/otelcol-contrib/temporal.key - Garantir a conectividade de rede entre o ClickStack e o Temporal
temporal-metrics.yaml e temporal.key estão armazenados.Opção 1: Docker Compose
Atualize a configuração de implantação do ClickStack:Opção 2: Docker run (imagem all-in-one)
Se estiver usando a imagem all-in-one comdocker run:Verifique as métricas no HyperDX
Após a configuração, faça login no HyperDX e verifique se as métricas estão sendo recebidas:- Navegue até o explorador de métricas
- Pesquise por métricas que comecem com
temporal(por exemplo,temporal_cloud_v1_workflow_success_count,temporal_cloud_v1_poll_timeout_count) - Você deverá ver os pontos de dados das métricas aparecerem no intervalo de coleta configurado
Dashboards e visualizações
a configuração do dashboard
Importe o dashboard pré-configurado
- Abra o HyperDX e vá até a seção Dashboards
- Clique em Import Dashboard no canto superior direito, no menu de reticências
- Faça upload do arquivo
temporal-metrics-dashboard.jsone clique em Finish Import
Visualize o dashboard
O dashboard será criado com todas as visualizações pré-configuradas:Solução de problemas
A configuração personalizada não está sendo carregada
CUSTOM_OTELCOL_CONFIG_FILE está definida corretamente:
/etc/otelcol-contrib/custom.config.yaml:
temporal.key está montado no contêiner:
Nenhuma métrica aparece no HyperDX
Erros de autenticação
Problemas de conectividade de rede
docker run permitem conectividade de rede externa.
Próximos passos
- Configure alertas para métricas críticas (taxas de falha de workflow, crescimento do backlog de tarefas, latência entre agendamento e início)
- Crie dashboards adicionais para casos de uso específicos (monitoramento por espaço de nomes, desempenho por tipo de workflow)
- Monitore várias contas do Temporal Cloud duplicando a configuração do receiver com diferentes endpoints e nomes de serviço