Open mguassone-enginium opened 5 months ago
Yes, we also encountered the same problem Need confirmation from @mvisonneau
Curious about this, too. I'm new here and haven't used this exporter, yet, but did you already try the redis setup? It sounds like it would do the trick because you can make redis persistence easily enough, and the docs say that all exporters would use the same single redis. So you could also just use one exporter with redis.
Curious about this, too. I'm new here and haven't used this exporter, yet, but did you already try the redis setup? It sounds like it would do the trick because you can make redis persistence easily enough, and the docs say that all exporters would use the same single redis. So you could also just use one exporter with redis.
Yes, I do read about the Redis setup but I haven't tried it yet. I want to refresh my knowledge. if I'm not mistaken, all of the exporters are scraped by Prometheus to store all the data that has been fetched from the exporter, isn't it? But, why do gitlab-ci-pipelines-exporter data is lost when we restart the exporter?
The way Prometheus works is that it only sees data at the time it scrapes them. So it will scrape this exporter, see the bunch of metrics, saves them with its own current timestamp and that's it.
What this exporter does is provide this list of metrics for prometheus to scrape.
But all the metrics this exporter produces is a bunch of counts and percentages over all the pipelines/jobs. So in order to offer counts, it needs to count them again after a reboot if no persistant memory is used.
I've come to the conclusion that this exporter and prometheus is not for my use case. I want a historic view on my gitlab jobs. Like time spent on a specific unit-test to see if it increases/decreases with new commits. That is not what prometheus is built for.
I'm going to scrape these job metrics myself into a custom database and then use grafana on that database directly, not using prometheus as a go-between.
I'm running the gitlab-ci-pipeline-exporter using Docker Compose and have encountered an issue with data persistence. Upon restarting the exporter container, all previously collected data is lost and becomes unavailable in both Prometheus and Grafana.
This poses a significant challenge for my organization, as we operate a large on-prem GitLab instance. The reindexing process that occurs after each restart is time-consuming and disruptive.
I'm wondering if this is an expected behavior or if I've misunderstood the tool's intended usage and purpose. If it's indeed a limitation, I'd like to request guidance on implementing a persistence layer to prevent data loss and avoid the need for reindexing upon container or machine restarts.
Steps to reproduce
Possible solutions
Additional questions
Is there an official recommendation for running the gitlab-ci-pipeline-exporter in a production environment with persistence requirements? Are there any known workarounds or community-supported solutions for addressing this persistence issue? Thank you for your time and consideration of this matter. I appreciate your assistance in resolving this issue and improving the overall usability of the gitlab-ci-pipeline-exporter.
Please let me know if you have any other questions or require further clarification.
Additional Context
docker-compose.yml
gitlab-ci-pipelines-exporter.yml
prometheus/config.yml