gitblit-org / gitblit

pure java git solution
http://gitblit.com
Apache License 2.0
2.28k stars 670 forks source link

Expose metrics for Prometheus Monitoring Framework? #1190

Open goettl79 opened 7 years ago

goettl79 commented 7 years ago

Hi,

Anybody interested to expose gitblit metrics for the prometheus framework (prometheus.io). Would be a quick win I think. At least some basic metrics would be fine. E.g. Garbage Collections, Pushes / Pulls / Clone durations and so on...

gitblit commented 7 years ago

Hi @goettl79. That's certainly a great suggestion. Gitblit doesn't currently track many/any stats now. It could be instrumented for metrics collection, of course. Is this something you'd be interested in contributing? I have had success using DropWizard Metrics to report to monitoring systems in other projects. Do you know if there is a Prometheus adapter for Metrics? Or would it require a one-off integration with Prometheus?

goettl79 commented 7 years ago

I would be interested in contributing this feature, probably following the approach taken here: https://github.com/prometheus/client_java/issues/101.

Didn't know that gitblit is dropwizard service. Btw. Dropwizward Metrics do not export gitblit specific metrics, but only general service metrics to my knowledge.

gitblit commented 7 years ago

Didn't know that gitblit is dropwizard service.

It is not, you misunderstood.

goettl79 commented 7 years ago

Ah, ok. Then I'll see how far I get using the standard prometheus java client. Will add a pull request as soon as possible.

goettl79 commented 7 years ago

I implemented a first version of the metrics in pull request https://github.com/gitblit/gitblit/pull/1230 . @gitblit @fzs you can inspect the metrics on https://localhost:8443/prometheus/.

Next to default metrics for the jvm and log4j I implemented two metrics for git_garbage_collection and ldap sync time. ldap sync time is only visible when ldap is configured.

goettl79 commented 7 years ago

Hi @gitblit @fzs, anything I can do to advance this issue?

flaix commented 1 year ago

I wonder if this would also be possible through OpenTelemetry. I would like to have some adoption measurements and was planning to use OTeL for that. Having two separate observability systems seems overkill. On the other hand, Prometheus seems to come with many default libraries so not much needs to be done. It might still be nice to have system that allows for push and pull exporters, and OTeL has a Prometheus exporter. But that is classified as experimental.