Observação:

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.

Diagrama mostrando o fluxo de dados OpenTelemetry.

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.

Diagrama mostrando a visão geral do serviço OCI Application Performance Monitoring.

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.

Diagrama mostrando a visão geral do serviço 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

Pré-requisitos

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:

Tarefa 1: Configurar o OCI Application Performance Monitoring

  1. 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.

    1. 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.

    2. 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.

      Imagem mostrando os detalhes do domínio do OCI Application Performance Monitoring.

  2. 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.

      Diagrama de dados de cabeçalho HTTP para propagação de contexto.

    • 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

  1. 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.

    Diagrama mostrando o fluxo de dados do log.

  2. Criar uma Chave de Assinatura de API

    1. Vá para a Console do OCI e navegue até Usuário, Definições do Usuário.

    2. Selecione Chaves de API em Recursos.

    3. Clique em Adicionar Chave de API, Gerar Par de Chaves de API, Fazer Download da Chave Privada e Adicionar.

    4. Copie o conteúdo da Visualização do Arquivo de Configuração e clique em Fechar.

      Imagem de uma visualização do arquivo de configuração no OCI.

  3. 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]
    
  4. Criar um Parser de Log

    1. Vá para a Console do OCI e navegue até Observabilidade e Gerenciamento, Logging Analytics, Administração.

    2. Clique em Parsers, Criar Parser e selecione Tipo como JSON.

    3. Informe o conteúdo de log JSON de exemplo, ele fará parsing e extrairá campos e o mapeará para nomes de campo específicos e clique em Salvar Alterações.

      Imagem de uma configuração de parser de log no OCI.

  5. Criar uma Origem de Log

    1. Vá para a Console do OCI e navegue até Logging Analytics, Administração, Origens, Criar Origem.

    2. Informe Tipo de Origem como File e Tipos de Entidade como Host (Linux).

    3. Em Analisador Específico, selecione o analisador criado na Tarefa 2.4 e clique em Criar Origem.

      Imagem dos detalhes de uma origem de log no OCI.

  6. Criar um Grupo de Logs

    1. Vá para a Console do OCI e navegue até Logging Analytics, Administração, Grupos de Logs, Criar Grupo de Logs.

    2. 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.

      Imagem dos detalhes de um grupo de logs no OCI.

      Imagem destacando um OCID de grupo de logs no OCI.

      Imagem destacando um OCID de compartimento no OCI.

  7. Obter os Detalhes do Namespace

    1. 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.

    2. Abra o Cloud Shell e execute o comando a seguir para obter o namespace.

      oci os ns get -c compartmentID
      

    Imagem mostrando como obter os detalhes do namespace em uma console do OCI.

  8. 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.

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.

View do Log Explorer no OCI Logging Analytics.

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.

GIF mostrando um exemplo de detalhamento do OCI Application Performance Monitoring para o OCI Logging Analytics.

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:

Exemplo de painel criado para um aplicativo MERN.

Imagem mostrando um painel de controle personalizado no OCI Application Performance Monitoring.

Agradecimentos

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.