Demonstração do uso do opentelemetry em projetos PHP para o artigo publicado no medium da Engenharia Qive.
Aqui simulamos um caso de uso de dois microserviços. Para obter os detalhes completos de um pedido o order-service deve
se integrar com o product-service para extrair informações adicionais de um determinado produto.
Os requisitos mínimos para rodar o projeto são:
- Docker
- Docker compose
- Make
Clone esse projeto e na raiz execute o comando:
make setupEsse comando irá subir todos os containers necessários, incluindo aplicação, banco de dados, proxy reverso e o Grafana para visualização de traces.
A aplicação fica disponível na porta 8000 e o grafana na porta 3000 (http://localhost:3000).
Todos os endpoints de exemplo são GETs, então tudo pode ser validado facilmente pelo browser.
O endpoint de detalhes de produtos vai lançar exceções intermitentes, o que deve trigar um erro no endpoint de detalhes de um produto também.
Isso é utilizado para validarmos no Grafana como cenários de erros podem ser visualizados nos traces.
GET /api/order-service/orders: Lista de pedidosGET /api/order-service/orders/{id}: Detalhes de um único pedido.GET /api/product-service/products/{id}: Detalhes de um produto
