Jaeger

Jaeger é uma ferramenta de rastreamento distribuído compatível com o protocolo OpenTelemetry, que permite monitorar e resolver problemas de desempenho em sistemas complexos e distribuídos, oferecendo visibilidade detalhada das transações e dependências.

Aqui está o texto revisado mantendo o conteúdo original:


A integração com o OpenTelemetry é nativa na plataforma Devprime, simplificando a jornada do desenvolvedor de software com a utilização desse recurso que agrega muito valor no cenário de sistemas distribuídos, permitindo rastrear um processo de negócio em todos os microsserviços envolvidos.

As principais plataformas de Cloud do mercado já oferecem suporte ao OpenTelemetry, o que facilita sua adoção em ambiente de produção. Existe a opção de utilizá-lo no Kubernetes ou em qualquer outra solução gerenciada.

No contexto da nossa demonstração, utilizaremos um container Docker local para configurar o coletor de dados e a ferramenta Jaeger. Para configurar, é necessário especificar o protocolo e o endpoint na configuração.

Protocolo URL
grpc http://localhost:4317
http http://localhost:4318

Siga os passos abaixo:

  1. Instale o Devprime CLI.

  2. Inicialize o container do Jaeger disponibilizado na documentação do Docker.

  3. Clone o repositório com os dois microsserviços (ms-order/ms-payment) ou implemente manualmente:

    git clone https://github.com/devprime/devprime-microservices-order-payment.git
    
  4. Entre na pasta clonada e execute o comando dp stack:

    dp stack
    

    a) Abra o arquivo no Visual Studio Code dentro da pasta de cada microsserviço:

    code src/App/appsettings.json
    

    b) Abra a chave Observability e verifique se a opção Enable está configurada como true. Em seguida, vá para a opção Trace e configure Enable como true, Type como Jaeger, e defina o host/port/endpoint com a URL do serviço de acordo com o protocolo (grpc/http). No Docker local, a URL padrão para grpc é “http://localhost:4317”.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 "Devprime_Observability": {
    "Enable": "true",
    "Log": {
      "Enable": "true",
      "Save": "false",
      "Type": "text",
      "FileSize": "5242880",
      "HideDetails": "false",
      "HideDateTime": "false",
      "ShowAppName": "false",
      "Path": "",
      "ShowHttpErrors": "400",
      "Export": {
        "Enable": "false",
        "Type": "seq",
        "Host": "http://localhost:5341",
        "ApiKey": "your api key",
        "ControlLevelSwitch": "Information"
      }
    },
    "Metrics": {
      "Enable": "false"
    },
    "Trace": {
      "enable": "true",
      "Type": "Jaeger",
      "Host": "localhost",
      "Port": "4317",
      "Endpoint": "http://localhost:4317",
      "Protocol": "grpc"
    }
  },
  1. Execute o microsserviço ‘ms-order’ e observe no log que a informação configurada do Open Telemetry já estará em funcionamento. O log já demonstra que o Trace está como Enable e o Type definido como “Jaeger”.
1
2
[App][Observability]["Enable"][Log "Enable"][Export "Disable"]
[Trace "Enable"][Type "jaeger"][Metrics "Disable"]

Acompanhando o trace de dois ou mais microsserviços

  1. Execute o microsserviço ms-order e ms-payment
  2. Abra no browser em http://localhost:5000 e faça um ou mais posts em /v1/order
  3. Abra o Jaeger no browser em http://localhost:16686 e visualize

Welcome Jaeger

  1. Verifique todos os detalhes do processamento

Welcome Jaeger

Informação legal:
O Jaeger é uma ferramenta opensource compatível com o padrão Open Telemetery. Qualquer informação sobre licenciamento e utilização recomendamos o fabricante.

Última modificação November 5, 2024 (1c11d03d)