Nossa integração Temporal na nuvem monitora o desempenho dos dados da sua Nuvem Temporal, ajudando você a diagnosticar problemas em seu fluxo de trabalho, namespace e aplicativo escalável. Nossa integração Temporal na nuvem oferece um dashboard pré-construído com suas métricas de Nuvem Temporal mais importantes.
Depois de configurar a integração com o New Relic, veja seus dados em painéis como estes, prontos para uso.
Instalar o agente de infraestrutura
Para utilizar a integração Temporal Cloud, é necessário primeiro instalar o agente de infraestrutura no mesmo host. O agente de infraestrutura monitora o próprio host, enquanto a integração que você instalará na próxima etapa estende seu monitoramento com dados específicos do Temporal, como banco de dados e instância métrica.
Configurar nri-flex
Depois que as métricas da Temporal Cloud forem expostas no endpoint do Prometheus, acessível via https://<account-id>.tmprl.cloud/prometheus
, você precisará definir sua configuração adequadamente.
Observação
O Flex requer uma contaNew Relic e é compatível com os seguintes sistemas operacionais/plataformas:
Linux
Windows
Kubernetes
Para obter mais informações sobre distribuições e versões compatíveis, consulte a página de compatibilidade do agente de infraestrutura.
Crie um arquivo com o nome
nri-flex-temporal-cloud-config.yml
neste caminho:bash$touch /etc/newrelic-infra/integrations.d/Abaixo está um arquivo de configuração
nri-flex
. Certifique-se de copiar e colar seu conteúdo no arquivonri-flex-temporal-cloud-config.yml
criado anteriormente e lembre-se de atualizar o ID da sua conta no URL do endpoint do Prometheus, bem como os caminhos para os arquivos de certificado:integrations:- name: nri-flexconfig:name: temporalCloudIntegrationglobal:base_url: https://<your_account_id>.tmprl.cloud/prometheus/api/v1/headers:accept: application/jsontls_config:enable: truekey: /certs/client.keycert: /certs/client.peminterval: 60stimeout: 55sapis:- event_type: temporalCloudFrontendServiceError# sum(increase(temporal_cloud_v0_frontend_service_error_count[1m])) by (temporal_namespace,operation)url: query?query=sum%28increase%28temporal_cloud_v0_frontend_service_error_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Coperation%29split_array: trueleaf_array: true- event_type: temporalCloudFrontendServiceRequest# sum(increase(temporal_cloud_v0_frontend_service_request_count[1m])) by (temporal_namespace,operation)url: query?query=sum%28increase%28temporal_cloud_v0_frontend_service_request_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Coperation%29split_array: trueleaf_array: true- event_type: temporalCloudPollSuccess# sum(increase(temporal_cloud_v0_poll_success_count[1m])) by (temporal_namespace,operation,task_type)url: query?query=sum%28increase%28temporal_cloud_v0_poll_success_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Coperation%2Ctask_type%29split_array: trueleaf_array: true- event_type: temporalCloudPollSuccessSync# sum(increase(temporal_cloud_v0_poll_success_sync_count[1m])) by (temporal_namespace,operation,task_type)url: query?query=sum%28increase%28temporal_cloud_v0_poll_success_sync_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Coperation%2Ctask_type%29split_array: trueleaf_array: true- event_type: temporalCloudPollTimeout# sum(increase(temporal_cloud_v0_poll_timeout_count[1m])) by (temporal_namespace,operation,task_type)url: query?query=sum%28increase%28temporal_cloud_v0_poll_timeout_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Coperation%2Ctask_type%29split_array: trueleaf_array: true- event_type: temporalCloudResourceExhaustedErrors# sum(increase(temporal_cloud_v0_resource_exhausted_error_count[1m])) by (temporal_namespace,resource_exhausted_cause)url: query?query=sum%28increase%28temporal_cloud_v0_resource_exhausted_error_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2Cresource_exhausted_cause%29split_array: trueleaf_array: true- event_type: temporalCloudScheduleActionSuccess# sum(increase(temporal_cloud_v0_schedule_action_success_count[1m])) by (temporal_namespace)url: query?query=sum%28increase%28temporal_cloud_v0_schedule_action_success_count%5B1m%5D%29%29%20by%20%28temporal_namespace%29split_array: trueleaf_array: true- event_type: temporalCloudScheduleBufferOverruns# sum(increase(temporal_cloud_v0_schedule_buffer_overruns_count[1m])) by (temporal_namespace)url: query?query=sum%28increase%28temporal_cloud_v0_schedule_buffer_overruns_count%5B1m%5D%29%29%20by%20%28temporal_namespace%29split_array: trueleaf_array: true- event_type: temporalCloudScheduleMissedCatchupWindow# sum(increase(temporal_cloud_v0_schedule_missed_catchup_window_count[1m])) by (temporal_namespace)url: query?query=sum%28increase%28temporal_cloud_v0_schedule_missed_catchup_window_count%5B1m%5D%29%29%20by%20%28temporal_namespace%29split_array: trueleaf_array: true- event_type: temporalCloudScheduleRateLimited# sum(increase(temporal_cloud_v0_schedule_rate_limited_count[1m])) by (temporal_namespace)url: query?query=sum%28increase%28temporal_cloud_v0_schedule_rate_limited_count%5B1m%5D%29%29%20by%20%28temporal_namespace%29split_array: trueleaf_array: true- event_type: temporalCloudStateTransition# sum(increase(temporal_cloud_v0_state_transition_count[1m])) by (temporal_namespace)url: query?query=sum%28increase%28temporal_cloud_v0_state_transition_count%5B1m%5D%29%29%20by%20%28temporal_namespace%29split_array: trueleaf_array: true- event_type: temporalCloudTotalAction# sum(increase(temporal_cloud_v0_total_action_count[1m])) by (temporal_namespace, namespace_mode)url: query?query=sum%28increase%28temporal_cloud_v0_total_action_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20namespace_mode%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowCancel# sum(increase(temporal_cloud_v0_workflow_cancel_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_cancel_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowContinued# sum(increase(temporal_cloud_v0_workflow_continued_as_new_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_continued_as_new_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowFailed# sum(increase(temporal_cloud_v0_workflow_failed_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_failed_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowSuccess# sum(increase(temporal_cloud_v0_workflow_success_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_success_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowTerminate# sum(increase(temporal_cloud_v0_workflow_terminate_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_terminate_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowTimeout# sum(increase(temporal_cloud_v0_workflow_timeout_count[1m])) by (temporal_namespace, operation)url: query?query=sum%28increase%28temporal_cloud_v0_workflow_timeout_count%5B1m%5D%29%29%20by%20%28temporal_namespace%2C%20operation%29split_array: trueleaf_array: true- event_type: temporalCloudWorkflowExecutionLatencySecP95# histogram_quantile(0.95, sum(rate(temporal_cloud_v0_service_latency_bucket[1m] offset 1m)) by (temporal_namespace, operation, le))url: query?query=histogram_quantile%280.95%2C%20sum%28rate%28temporal_cloud_v0_service_latency_bucket%5B1m%5D%20offset%201m%29%29%20by%20%28temporal_namespace%2C%20operation%2C%20le%29%29split_array: trueleaf_array: true- event_type: temporalCloudReplicationLagSecP95# histogram_quantile(0.95, sum(rate(temporal_cloud_v0_replication_lag_bucket[1m] offset 1m)) by (temporal_namespace, le))url: query?query=histogram_quantile%280.95%2C%20sum%28rate%28temporal_cloud_v0_replication_lag_bucket%5B1m%5D%20offset%201m%29%29%20by%20%28temporal_namespace%2C%20le%29%29split_array: trueleaf_array: trueUse nossas instruções para reiniciar seu agente de infraestrutura:
bash$sudo systemctl restart newrelic-infra.serviceAguarde alguns minutos até que os dados comecem a fluir para sua conta New Relic.
Encontre seus dados
Você pode escolher nosso modelo dashboard pré-construído chamado Nuvem Temporal para monitor sua métrica de Nuvem Temporal. Siga estas etapas para usar nosso modelo dashboard pré-construído:
De one.newrelic.com, acesse a página + Integrations & Agents .
Clique no Dashboards.
Na barra de pesquisa, digite Temporal Cloud.
O dashboard da Nuvem Temporal deve aparecer. Clique nele para instalá-lo.
Seu dashboard do Temporal Cloud é considerado um dashboard personalizado e pode ser encontrado na interface do painel. Para obter documentos sobre como usar e editar o painel, consulte nossa documentação dashboard .
Aqui está uma consulta NRQL para verificar a contagem de solicitações de serviço de front-end da Temporal Cloud:
FROM temporalCloudFrontendServiceRequest SELECT latest(`data.result-value1`) FACET `data.result-metric-__name__`
Qual é o próximo?
Para saber mais sobre como construir uma consulta NRQL e gerar um painel, confira estes documentos:
- Introdução ao criador de consulta para criação de consultas básicas e avançadas.
- Introdução aos dashboards para personalizar seu dashboard e realizar diversas ações.
- Gerencie seu dashboard para ajustar o modo de exibição dos painéis ou para adicionar mais conteúdo ao seu dashboard.