I want to create a dashboard which will track the error rate of the microservice and service availability in percentage.
Also, I want to track the Database service availability e.g Postgresql db host has multiple db’s, so we want to track those DB availability
We have our microservices running on kubernetes cluster, and DB observability is enabled.
If you’re using Prometheus with Kubernetes, you can build this from your application metrics.
Microservice error rate (assuming your application exposes http_requests_total):
100 *
sum(rate(http_requests_total{service="$service",status_code=~"5.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))
Request success rate (an availability SLI):
100 -
(
100 *
sum(rate(http_requests_total{service="$service",status_code=~"5.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))
)
(Spring Boot + Micrometer uses http_server_requests_seconds_count.)
For PostgreSQL, it depends on how “DB observability” is enabled. If you are using postgres_exporter, pg_up indicates whether the exporter can connect to the PostgreSQL instance but it isn’t a per-database availability metric. If you need availability for individual databases on the same PostgreSQL server, the approach depends on how those databases are being monitored.
Which PostgreSQL observability solution are you using (for example, postgres_exporter, Grafana Database Observability, or something else)?