Zipkin

Zipkin é um sistema de rastreamento distribuído. Ele ajuda a coletar dados de tempo necessários para solucionar problemas de latência em arquiteturas de serviço. Os recursos incluem a coleta e a pesquisa desses dados. 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 Open Telemetry 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 Zipkin.

Siga os passos abaixo:

  1. Instale o Devprime CLI.

  2. Inicialize o container do Zipkin 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.

  4. Atualize o Stack executando na pasta principal para detectar os dois microsserviços
    dp stack

  5. Localize o arquivo de configuração na pasta de cada microsserviço que nesse exemplo citado no item 2 utilizaremos o “ms-order” e o “ms-payment”.

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
 "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": "zipkin",
      "Endpoint": "http://localhost:9411/api/v2/spans"
    }
  },
  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 “ZipKin”.
1
2
[App][Observability]["Enable"][Log "Enable"][Export "Disable"]
[Trace "Enable"][Type "zipkin"][Metrics "Disable"]

Acompanhando o trace de um microsserviço

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

Welcome Zipkin

  1. Verifique todos os detalhes do processamento

Welcome Zipkin

Acompanhando o trace de dois ou mais microsserviços

  1. Execute os dois microsserviços (ms-order / ms-payment)
  2. Efetue um post no microsserviço ms-order
  3. Visualize os dtalhes no Zipkin

Welcome Zipkin

Informação legal:
O Zipkin é 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)