In my last post, i have shown how to export performance counters. One option was to use prometheus-net project.
In order to use it, we need
- publish metrics
- a Prometheus server
- a Grafana server
In order to publish metrics for a .Net Core 2 AspNetCore project, we just have to add prometheus-net.AspNetCore package, and in the Configure method of the Startups.cs class, to add
And, this just add an API served on "/metrics" endpoint on the default port.
In order to get a Prometheus server, we can use Docker
docker run \ -p 9090:9090 \ -v /path/to/config:/etc/prometheus \ prom/prometheus
In order to scrape data from our server, we need to modify the Prometheus configuration to add the published metrics.
global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15s alerting: alertmanagers: - scheme: http timeout: 10s api_version: v1 static_configs: - targets:  scrape_configs: - job_name: prometheus honor_timestamps: true scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http static_configs: - targets: - localhost:9090 - job_name: backend honor_timestamps: true scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http static_configs: - targets: - localhost:8080
I have discovered this tool to use Service Discovery on Docker-Compose, but not yet used it.
In order to get a Grafana server, we can use Docker
docker run -d -p 3000:3000 grafana/grafana
The default login / password is admin / admin.
We need to add the Prometheus as a data source and then the dashboard, by using the id 10427 in Grafana.
Hope this helps !