Hi! This study project was created to improve the project AspnetMicroservicesExample, based on udemy course Microservices architecture and implementarion on dotnet.
The project will start based on .net 7.
- MongoDB as main database
- Redis as cache
- Data, Repository and Entities segregated to be reused in Catalog Minimal API
- RabbitMQ as message broker to queue email sending
- Sonarqube was containerized to be used as the code quality checker.
- Sonarlint was configured at Visual Studio 2022 integrating with Sonarqube
- OpenCover is the tool responsible for the code coverage reports generation.
- Bogus to faker data on Tests. For the local integration with Sonarqube, the commands used to are:
dotnet sonarscanner begin /k:"eShopMicroservices"
/d:sonar.host.url="http://localhost:9100"
/d:sonar.login= [sonarqube code]
/d:sonar.cs.opencover.reportsPaths=coverage.xml
dotnet build --no-incremental
[OpenCoverPath]\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test --no-build" -returntargetcode -output:coverage.xml -register:user
dotnet sonarscanner end /d:sonar.login=[sonarqube code]
- Github Action
- OpenTelemetry cloud native option to collect metrics
-
Grafana Agent to export metrics to Grafana Labs(removed cause didn't work for Tracing) - OpenTelemetry Collector to export metrics to Grafana Labs.
- Prometheus time series database to store metrics
- Grafana observability platform to visualize Prometheus data
- OpenTelemetry cloud native option to send tracing
-
Jaeger end-to-end distributed tracing(changed to Grafana Labs Tempo) - OpenTelemetry Collector to export tracing to Grafana Labs. (Grafana Agent didn't work in this scenario)
- Grafana Tempo using Grafana Labs to store and explore tracing data
- Portainer: http://localhost:9000
- SonarQube: http://localhost:9100/
- MongoExpress: http://localhost:8081/
- Kibana: http://localhost:9010/
Prometheus: http://localhost:9090/Grafana: http://localhost:3000/Jaeger: http://localhost:16686/
- Catalog.API: http://localhost:5006
- Catalog.API: http://localhost:8006