Skip to content

Feat/observability - #35

Merged
ArthurMachado2501 merged 3 commits into
mainfrom
feat/observability
Aug 30, 2026
Merged

Feat/observability#35
ArthurMachado2501 merged 3 commits into
mainfrom
feat/observability

Conversation

@ArthurMachado2501

Copy link
Copy Markdown
Contributor

Objetivo

Adicionar observabilidade à aplicação, permitindo acompanhar requisições, erros, tempo de resposta e traces distribuídos por meio de Micrometer e OpenTelemetry, com exportação dos dados via OTLP para o ambiente de observabilidade.

Alterações

  • Adicionado suporte à instrumentação da aplicação com OpenTelemetry.
  • Configurada geração e propagação de traces e traceId nas requisições.
  • Adicionada integração com Micrometer Tracing para gerenciamento dos spans.
  • Configurado envio dos dados de observabilidade via OTLP.
  • Adicionadas métricas HTTP para acompanhamento de quantidade de requisições, erros e tempo de resposta.
  • Configurados buckets SLO para métricas de latência das requisições HTTP.
  • Adicionado filtro para disponibilizar o traceId no header da resposta HTTP.
  • Integrada a observabilidade com o tratamento global de exceções, garantindo que erros tratados pelo GlobalExceptionHandler também sejam registrados no trace.
  • Configurada propagação do contexto de observabilidade para tarefas assíncronas.
  • Adicionada integração do Logback com OpenTelemetry para correlação dos logs com os traces.
  • Configurações preparadas para exportação dos dados para o OpenTelemetry Collector.

Endpoints afetados

Sem endpoints afetados.

A alteração é exclusivamente relacionada à observabilidade e atua de forma transversal sobre as requisições existentes.

Banco de Dados

  • Migration
  • Schema
  • Seed

Como testar

  1. Iniciar a aplicação com as configurações de observabilidade habilitadas.
  2. Realizar uma requisição para qualquer endpoint existente da aplicação.
  3. Verificar se o header traceId é retornado na resposta.
  4. Verificar a geração de métricas HTTP, incluindo quantidade de requisições, erros e tempo de resposta.
  5. Provocar uma exceção tratada pelo GlobalExceptionHandler e verificar se o trace é marcado como erro.
  6. Verificar os logs da aplicação e confirmar a correlação com o traceId.
  7. Com o OpenTelemetry Collector configurado, verificar se os dados de traces, métricas e logs são enviados corretamente para o ambiente de observabilidade.

Evidências

  • Logs contendo traceId para correlação entre requisições e logs.
  • Traces gerados pela aplicação e enviados via OTLP.
  • Métricas HTTP disponibilizadas para monitoramento.
  • Trace apresentando status de erro para exceções tratadas pelo GlobalExceptionHandler.
  • Dashboard do Grafana exibindo as métricas e traces da aplicação.

Closes #

add photo management with Cloudinary integration
- Created UserPhoto entity and corresponding repository.
- Introduced PhotoType enum for categorizing photo types.
- Developed services for managing company, local unit, model, and user photos, including upload and delete functionalities.
- Implemented CloudinaryService for handling file uploads and deletions.
- Added response DTOs for various photo types.
- Enhanced EnergyBillService to support photo attachment and removal.
- Updated CompanyService and LocalUnitService to include photo repository checks during deletions.
- Configured application properties for Cloudinary settings and increased file upload limits.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate FailedQuality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@ArthurMachado2501
ArthurMachado2501 merged commit 27bc33f into mainAug 30, 2026
0 of 3 checks passed
@ArthurMachado2501
ArthurMachado2501 deleted the feat/observability branch August 30, 2026 22:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ArthurMachado2501@EduardoRSilva5102