Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Monitorar Aplicativos usando o OCI Application Performance Monitoring e OpenTelemetry
Introdução
O monitoramento de aplicativos que variam em componentes de pilha geralmente pode ser desafiador. Uma abordagem unificada para monitorar esses componentes permite visibilidade de ponta a ponta e insights sobre os problemas que podem surgir. OpenTelemetry é um padrão do setor para coletar dados de rastreamento, métrica e log para a maioria das linguagens de programação. Ele pode fornecer insights avançados quando combinado com os serviços Oracle Cloud Infrastructure (OCI) Observability and Management, como OCI Application Performance Monitoring e OCI Logging Analytics.

O OCI Application Performance Monitoring fornece uma visibilidade profunda do desempenho de aplicativos e permite diagnosticar problemas rapidamente para fornecer um nível consistente de serviço. Isso inclui o monitoramento dos vários componentes e da lógica de aplicativos distribuídos entre clientes, serviços de terceiros e camadas de computação de back-end, on-premises ou na nuvem.

O OCI Logging Analytics é uma solução de nuvem da OCI que indexa, enriquece, agrega, explora, pesquisa, analisa, correlaciona, visualiza e monitora todos os dados de log de aplicativos e infraestrutura do sistema. Obtenha insights avançados de dados de log usando modelos selecionados de IA/ML criados no OCI Logging Analytics.

OpenTelemetry tem várias implementações para diferentes linguagens de programação e está constantemente sendo atualizado ou desenvolvido. O objetivo de usar essa estrutura é ter uma maneira unificada e padronizada de coletar e enviar dados de monitoramento.
Neste tutorial, você aprenderá a instrumentar um aplicativo com OpenTelemetry e exportar os dados coletados para serviços do OCI, como OCI Application Performance Monitoring e OCI Logging Analytics.
Objetivos
-
Configure OpenTelemetry para um aplicativo de pilha não Oracle.
-
Envie rastreamentos e métricas para o OCI Application Performance Monitoring.
-
Envie dados de log para o OCI Logging Analytics.
Pré-requisitos
-
Uma tenancy do OCI com a conta de administrador inicial.
-
Um aplicativo
Node.js(exemplo de repositório GitHub: oci-observability-and-management). -
Uma compreensão básica de JavaScript.
GitHub Exemplo
Se você quiser implementar o monitoramento para aplicativos MERN/MEAN/MEVN, use o repositório GitHub oci-observability-and-management. Este repositório inclui arquivos para:
-
Instrua o frontend e o backend do aplicativo.
-
Enviar métricas personalizadas para o OCI Application Performance Monitoring (APM).
-
Enviar mensagens de log para o OCI Logging Analytics.
-
Um exemplo de aplicativo para experimentar a implementação OpenTelemetry.
Tarefa 1: Configurar o OCI Application Performance Monitoring
-
Criar um domínio do OCI Application Performance Monitoring (APM)
Observação: verifique a documentação do OCI Application Performance Monitoring para tarefas de pré-requisito.
-
Faça log-in na Console do OCI e navegue até Observabilidade e Gerenciamento, Application Performance Management, Administração para abrir a página de administração do OCI Application Performance Monitoring.
-
Clique em Criar Domínio do APM e informe um nome de domínio. Observe as informações a seguir encontradas na página de domínio do OCI Application Performance Monitoring.
-
Ponto final de upload de dados: URL para enviar dados para o OCI Application Performance Monitoring.
-
Chave de dados pública: usada com o agente do browser do OCI Application Performance Monitoring.
-
Chave de dados privada: Para estabelecer conexão com coletores de dados, como OpenTelemetry.

-
-
-
Instrumentar um Aplicativo
Para monitorar o frontend de um aplicativo, instrumente o agente do browser OCI Application Performance Monitoring. Para obter mais informações, consulte Etapas de instrumentação do navegador/cliente.
Instrumentação do Servidor
-
Para obter rastreamentos de ponta a ponta, a propagação de contexto é necessária dos rastreamentos de frontend de um navegador/cliente para o servidor. Uma coisa a ter em mente ao fazer isso é garantir que haja cabeçalhos HTTP para fornecer o contexto. Por padrão, OpenTelemetry usa W3C (traceparent) para propagar automaticamente o contexto. Há outros tipos de cabeçalho que podem ser usados, mas precisam ser contabilizados no código do aplicativo.

-
Certifique-se de adicionar o código a seguir com o trecho de código JavaScript que executa a instrumentação do navegador/cliente.
window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ]; -
Instrua a instrumentação automática ou o backend manual, dependendo do que está disponível. Consulte etapas da sua linguagem de programação.
Exemplos em GitHub
-
Tarefa 2: Configurar o OCI Logging Analytics
-
Enviar Logs do Aplicativo
Envie logs de aplicativos para o OCI Logging Analytics, que permite correlacionar rastreamentos, métricas e logs para obter visibilidade completa do aplicativo. O registro em log pode ser ativado usando bibliotecas de registro em log padrão e anexador de log personalizado. O apêndice de log deve ser criado para enviar os logs usando pontos finais SDK ou REST fornecidos pelo OCI, conforme mostrado.

-
Criar uma Chave de Assinatura de API
-
Vá para a Console do OCI e navegue até Usuário, Definições do Usuário.
-
Selecione Chaves de API em Recursos.
-
Clique em Adicionar Chave de API, Gerar Par de Chaves de API, Fazer Download da Chave Privada e Adicionar.
-
Copie o conteúdo da Visualização do Arquivo de Configuração e clique em Fechar.

-
-
Criar um Arquivo de Configuração
Crie um diretório (
.oci) e um arquivo de configuração com conteúdo da visualização do arquivo de configuração e caminho para o arquivo de chave privada. Abaixo está um exemplo do arquivo de configuração.[DEFAULT] user= [User OCID] fingerprint= [API Key Fingerprint] tenancy= [Tenancy OCID] region= [Region] key_file= [Path to Private Key File] -
Criar um Parser de Log
-
Vá para a Console do OCI e navegue até Observabilidade e Gerenciamento, Logging Analytics, Administração.
-
Clique em Parsers, Criar Parser e selecione Tipo como
JSON. -
Informe o conteúdo de log
JSONde exemplo, ele fará parsing e extrairá campos e o mapeará para nomes de campo específicos e clique em Salvar Alterações.
-
-
Criar uma Origem de Log
-
Vá para a Console do OCI e navegue até Logging Analytics, Administração, Origens, Criar Origem.
-
Informe Tipo de Origem como
Filee Tipos de Entidade comoHost (Linux). -
Em Analisador Específico, selecione o analisador criado na Tarefa 2.4 e clique em Criar Origem.

-
-
Criar um Grupo de Logs
-
Vá para a Console do OCI e navegue até Logging Analytics, Administração, Grupos de Logs, Criar Grupo de Logs.
-
Digite o Nome, a Descrição do grupo de logs e clique em Criar.
Observação: Anote o OCID (Oracle Cloud Identity) do grupo de logs que será usado posteriormente.



-
-
Obter os Detalhes do Namespace
-
Vá para a Console do OCI e navegue até Identidade, Compartimentos, clique no compartimento no qual a origem de log é criada e copie o OCID do compartimento.
-
Abra o Cloud Shell e execute o comando a seguir para obter o namespace.
oci os ns get -c compartmentID

-
-
Criar um Apêndice de Log
Um apêndice de log personalizado pode ser criado usando SDKs do OCI Logging Analytics fornecidos para diferentes linguagens de programação, como Java, Python, .Net, TypeScript/JavaScript, Go e Ruby, ou usar pontos finais do OCI API Rest. Para obter mais informações, consulte SDKs (Software Development Kits) e Referência e Pontos Finais de API.
Exemplo em GitHub: Anexador de Log - JavaScript (Pilha MERN).
Anote os parâmetros a seguir necessários para inicializar e enviar logs para o OCI Logging Analytics nas etapas acima.
- [PATH]/config: Caminho para o arquivo de configuração.
- [PROFILE]: Perfil no arquivo de configuração a ser usado para autenticação do OCI.
- [NAMESPACE]: Namespace.
- [UPLOADNAME]: Nome definido pelo usuário para uploads.
- [LOGSOURCENAME]: Nome da origem de log criado no OCI Logging Analytics.
- [LOGFILENAME]: O nome do arquivo de log para indicar que as mensagens de log estão relacionadas ao arquivo de log específico.
- [LOGGROUPID]: ID do grupo de logs criado no OCI Logging Analytics para agrupar as mensagens de log.
Depois que os registros de log forem criados para diferentes níveis de log (depuração, informações, advertência e erro) por meio do apêndice de log, eles serão enviados ao OCI Logging Analytics e você poderá exibir os registros de log no Log Explorer, conforme mostrado abaixo.

Tarefa 3: Correlacionar Rastreamentos e Logs
OpenTelemetry inclui TraceId e SpanId nos registros de log e isso permite correlacionar diretamente logs e rastreamentos que correspondem ao mesmo contexto de execução. Rastreamentos e intervalos de aplicativos fluem para o OCI Application Performance Monitoring e fazem log-in no serviço OCI Logging Analytics. O OCI Application Performance Monitoring fornece uma maneira fácil de navegar de rastreamentos e intervalos para logs no OCI Logging Analytics em um clique usando uma configuração de detalhamento.
Drilldowns são links para outros serviços no OCI ou outros serviços personalizados usando URLs personalizáveis, incluindo atributos de intervalos (por exemplo: loganalytics/explorer?search=<OciInstanceId> em que ociInstanceId é um atributo de intervalo). Siga as etapas abaixo para configurar drill-downs no OCI Application Performance Monitoring.

Tarefa 4: Criar um Painel de Controle Personalizado
Depois que o rastreamento de dados e métricas estiver no OCI, use esses dados para representá-los visualmente. É fácil criar um painel de controle personalizado, basta arrastar e soltar os widgets necessários e modificar os dados de origem (métrica, rastreamento ou dados de log).
Para obter mais informações sobre painéis de controle personalizados, consulte:
- Criando painéis de controle personalizados do APM
- Criando painéis de controle personalizados do Logging Analytics
- Personalizar e exibir dados de rastreamento nos painéis do serviço Application Performance Monitoring usando widgets para criar widgets personalizados das consultas do Trace Explorer do serviço Application Performance Monitoring.
Exemplo de painel criado para um aplicativo MERN.

Links Relacionados
Agradecimentos
- Autor - Zyaad Khader (Engenheiro Estratégico de Programa do Cliente)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Monitor Applications using OCI Application Performance Monitoring and OpenTelemetry
F91956-01
January 2024
Copyright © APMOT, Oracle and/or its affiliates.