Jaeger

Jaeger é um sistema de rastreamento distribuído. Monitore e solucione problemas de transações em sistemas distribuídos complexos. Utilize o protocolo padrão OpenTelemetry padrão da Devprime.

A integração com o Open Telemetry é totalmente na nativa na plaraforma Devprime simplificando a jornada da pessoa desenvolvedora de software com a utilizaração desse recurso que agrega muito valor no cenário de sistemas distribuidos permitindo rastrear um processo de negócio em todos os microsserviços envolvidos.

As principais plataformas de Cloud do mercado já estão oferecendo suporte ao OpenTelemetry o que facilita a adoção no ambiente de produção. Existe a opção de se utilizar no kubernetes ou qualquer outra solução gerenciada.

No contexto da nossa demonstração utilizaremos um container Docker local para termos o coletor dos dados e a ferramenta Jaeger.

Siga os passos abaixo:

  1. Instale o Devprime CLI.

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

  3. Efetue o clone do 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.

a) Abra o arquivo no Visual Studio Code dentro da pasta do microsserviço
code src/App/appsettings.json

b) Abra a chave Observability e verifique se a opção Enable está true. Depois vá na opção Trace e configure o Enable como true, Type como zipkin e o Endpoint com a url do serviço. No Docker local a url tem o valor padrão de “http://localhost:9411/api/v2/spans”.

 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": "6831",
      "Endpoint": "http://localhost:14268",
      "Protocol": "UdpCompactThrift"
    }
  },
  1. Atualize o Stack executando na pasta principal para detectar os dois microsserviços
    dp stack

  2. 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 September 2, 2023 (c87f0320)