apache / apache/cloudstack

Export Virtual Router Health Checks to Prometheus

Aperta
#6,212 3 commenti 0 reazioni 1 assegnatario Rivendicata da @NuxRo Vedi su GitHub
component:prometheus type:enhancement
Lingua principale
Java
Stelle
3.1k
Fork
1.4k
Merge medio
6g 19h
PR unite (30g)
32

Descrizione

##### ISSUE TYPE
* Enhancement Request

##### COMPONENT NAME
API, VR

##### CLOUDSTACK VERSION

~~~
4.16.0.0
~~~
But after my research, not available in current versions.

##### CONFIGURATION
N/A

##### OS / ENVIRONMENT
N/A

##### SUMMARY
For monitoring of Virtual Routers, there seems to be no way of having the health check results in Prometheus metrics endpoint.

Currently, we are querying health check results with a pull based method for every Virtual Router, that is really inefficient on a large scale of routers.

##### STEPS TO REPRODUCE
- Enable Prometheus Metrics
- Enable VR Health Checks
- Query CloudStack `/metrics` endpoint

##### EXPECTED RESULTS
Have VR health check metrics exported at the `/metrics` endpoint.

I thought of something like this, according to the current output of `getRouterHealthCheckResults`:

~~~ini
# TYPE cloudstack_virtualrouter_healthcheck_result stateset
# HELP cloudstack_virtualrouter_healthcheck_result Virtual Router Health Check result
cloudstack_virtualrouter_healthcheck_result{checkname="connectivity.test",zone="zone1",virtualrouter="i-123456-VM",network="test-network"} 1

# TYPE cloudstack_virtualrouter_healthcheck_lastcheck gauge
# HELP cloudstack_virtualrouter_healthcheck_lastcheck Virtual Router Health Check lastcheck timestamp
# UNIT cloudstack_virtualrouter_healthcheck_lastcheck seconds
cloudstack_virtualrouter_healthcheck_lastcheck{checkname="connectivity.test",zone="zone1",virtualrouter="i-123456-VM",network="test-network"} 1649228157
~~~

Maybe this is not 100% accurate to OpenMetrics, but I tried to follow the guidelines. Maybe somebody with more knowledge can have a look.

A drawback with this solution would be that we lose information of the check result message, as Prometheus is not designed to handle this.

##### ACTUAL RESULTS
Virtual Router Health Checks not present on the CloudStack Prometheus metrics endpoint

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.