Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:observabilidade [03/06/2025 13:57] mfaquinopres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:observabilidade [03/06/2025 14:34] (atual) mfaquino
Linha 22: Linha 22:
  
 Caso alguma das partes importantes da aplicação não responda corretamente, a rota deve retornar um erro 500. Esse erro será capturado pelo monitoramento e enviado uma mensagem para o teams do TCE. Caso alguma das partes importantes da aplicação não responda corretamente, a rota deve retornar um erro 500. Esse erro será capturado pelo monitoramento e enviado uma mensagem para o teams do TCE.
 +
 +Uma vez configurada a rota **/health**  basta criar o monitoramento no uptime:{{https://projetos.tce.go.gov.br/attachments/download/20623/clipboard-202506031100-fw5hv.png?nolink&1867x938}}
 +
 +Quando uma verificação de /health falhar, um alerta é enviado no Teams: \\  \\ {{https://projetos.tce.go.gov.br/attachments/download/20624/clipboard-202506031102-brhud.png?nolink&1449x902}}
 +
 +==== Logs ====
 +
 +Os logs das aplicações devem ser enviados para a stack ELK (Elasticsearch, Logstash e Kibana). Inicialmente durante o desenvolvimento é importante utilizar uma bilbioteca de logs gere os arquivos application.log de forma estruturada, um exemplo é o [[https://logging.apache.org/log4net/index.html|Log4Net]] para .NET \\
 + \\
 +Uma vez que os logs estão sendo gerados, é necessário criar um agente no servidor que enviará os logs ao logstash para processamento e ingestão no elasticsearch.
 +
 +Um exemplo dessa configuração em um sistema que usa docker é configurar o gelf no docker-compose:
 +<code>
 +
 +logging:
 +   driver: "gelf"
 +      options:
 +        gelf-address: "udp://172.17.110.11:12201"
 +        tag: "DOCKER-JSON-LOGS"
 +
 +</code>
 +
 +Para aplicações .NET podemos configurar o filebeat no IIS seguindo a documentação do elasticsearch [[https://kibana.tce.go.gov.br/app/home#/tutorial/iisLogs|https://kibana.tce.go.gov.br/app/home#/tutorial/iisLogs]]
 +
 +**OBS: Os servidores IIS do TCE já estão configurados com o agente do filebeat, portanto basta salvar os logs da aplicação em um arquivo application.log para que os mesmos sejam enviados do IIS para o ELK**
 +
 +O resultado são os logs enviados para o ELK e possíveis de visualização no Kibana:
 +
 +[[https://kibana.tce.go.gov.br/app/discover#/view/80ba9850-7bc9-11ef-8471-bdbdc5553695|https://kibana.tce.go.gov.br/app/discover#/view/80ba9850-7bc9-11ef-8471-bdbdc5553695]]
 +
 +{{https://projetos.tce.go.gov.br/attachments/download/20510/clipboard-202505301155-m2b9a.png?nolink&2802x1657}}
 +
 +**Métricas**
 +
 +As métricas de código são geradas pelo Sonar, ele é responsável por analisar o código e gerar alertas de possíveis problemas e códigos que precisam de melhorias.
 +
 +A adição do sonar no projeto é feita usando a pipelinde de CI/CD do gitlab e se necessário o docker. \\  \\ No projeto primeiro adicione a pipeline de CI/CD com o arquivo **.gitlab-ci.yml**
 +<code>
 +image:
 +  name: docker/compose:latest
 +
 +stages:
 +  - sonar
 +  - test
 +  - deploy
 +
 +tcego-iago:sonar:
 +  image: sonarsource/sonar-scanner-cli:4.8
 +  stage: sonar
 +  script:
 +    - sonar-scanner -Dsonar.projectKey=TCE.Iago.AI -Dsonar.sources=source/API_IAGO -Dsonar.projectName="TCE.Iago.AI" -Dsonar.host.url="http://sonnar.tce.go.gov.br" -Dsonar.login="df0c036593cc15f4decb0538447e35382b72df44"
 +  only:
 +    refs:
 +   - main
 +      - merge_requests
 +      - develop
 +  tags:
 +    - docker-pipes-runner
 +
 +</code>
 +
 +Usando a imagem do docker do sonar: **sonarsource/sonar-scanner-cli:4.8 **o mesmo se encarregará de enviar o código para o sonar do TCE [[http://sonnar.tce.go.gov.br|http://sonnar.tce.go.gov.br]] onde será feito a análise de código.
 +
 +O seguintes parametros são necessários no sonar scanner:
 +
 +  * sonar.projectKey: Identificação do Projeto
 +  * sonar.sources: Pasta do projeto
 +  * sonar.projectName: Nome do Projeto
 +  * sonar.host.url: URL do Sonar
 +  * sonar.login: Token do Sonar
 +
 +Ao rodar a pipeline uma dashboard de métricas será gerada no sonar com o sonar.projectKey especificado:
 +
 +[[http://sonnar.tce.go.gov.br/dashboard?id=TCE.Iago.API|http://sonnar.tce.go.gov.br/dashboard?id=TCE.Iago.API]]
 +
 +{{https://projetos.tce.go.gov.br/attachments/download/20626/clipboard-202506031133-pvbqv.png?nolink&1870x942}}
  
  
  • pres/gerti/servico_de_desenvolvimento_de_sistemas_de_informacao/projetos/observabilidade.1748959045.txt.gz
  • Última modificação: 03/06/2025 13:57
  • por mfaquino