Releases: mvisonneau/gitlab-ci-pipelines-exporter
Releases · mvisonneau/gitlab-ci-pipelines-exporter
v0.5.2
Changed
- Updated default metrics garbage collection intervals from 5 to 10m
- monitor: correctly sanitize the config output
- fixed an issue introduced in v0.5.1 causing the exporter to fail when the monitoring listener address was not defined
- fixed a bug that could cause nil pointer deferences on readiness checks
- Updated golang to
1.17
v0.5.1
Added
- New monitoring CLI to retrieve information about the exporter
- New internal metrics about exporter's health:
gcpe_currently_queued_tasks_count- Number of tasks in the queuegcpe_environments_count- Number of GitLab environments being exportedgcpe_executed_tasks_count- Number of tasks executedgcpe_gitlab_api_requests_count- GitLab API requests countgcpe_metrics_count- Number of GitLab pipelines metrics being exportedgcpe_projects_count- Number of GitLab projects being exportedgcpe_refs_count- Number of GitLab refs being exported
Changed
- fixed a goroutines/memory leak introduced in
0.5.0which can occur when attempting to process more tasks than the ratelimit permits - fixed a bug causing the refreshing of tag based jobs to not match any API results, generating lots of unnecessary requests
- webhooks: added more details when processing wildcards
- examples/quickstart: updated prometheus and grafana versions
- updated most libraries to their most recent versions
v0.5.0
BREAKING CHANGES
-
The configuration syntax has evolved, you can refer to the updated version of the doc
pull.maximum_gitlab_api_requests_per_secondhas moved togitlab.maximum_requests_per_secondproject_defaults.pull.refs.*has been redone in a hopefully more comprehensible fashionproject_defaults.pull.refs.(branches|tags|merge_requests).*parameters can now be used to have a finer granularity
on the management of per-ref-kind settingsproject_defaults.pull.refs.from.(pipelines|merge_requests)is not natively managed as part of the per-ref-kind specific parameters
project_defaults.pull.environments.name_regexphas moved toproject_defaults.pull.environments.regexpproject_defaults.pull.environments.tags_regexpwas removed to avoid confusion
-
Logging configuration now has to be done as part of the config file instead of CLI flags:
log:
level: info
format: text- By default, when exporting metrics for
environments, stopped ones will not be considered any more.
Added
- New metric
gitlab_ci_pipeline_queued_duration_seconds - New metric
gitlab_ci_pipeline_job_queued_duration_seconds - (en|dis)able pulling
branches/tags/merge_requestson a global or per-project basis - Choose to export metrics for only the most 'n' recently updated refs pipelines
- Choose to export metrics for refs with pipelines 'updated in the last x seconds'
- Choose to export metrics for deleted
branchesortags - Choose to export metrics for available
environmentsonly
Changed
- Bumped all dependencies
- Enhanced the function signatures for the ref objects management
- Fixed a bug causing the jobs metrics pull to fail on ref.Kind=RefKindMergeRequest
- Fixed a bug causing the environments to be garbage collected on every run
- Fixed the error handling when comparing 2 refs which resulted into nil pointer dereferences
- Fixed the pulling of merge-request based pipelines
- Fixed unit tests on windows
- Replaced custom config mangement implementation with
creasty/defaultsandgo-playground/validator - Rewrote the non-OOP approach used so far for the controller
v0.4.9
Changed
- Fixed a bug preventing to set
output_sparse_status_metricsglobally or at the wildcard level - Updated all dependencies to their latest versions
- Reduced the default GitLab API request rate limit from 10 to 1rps
v0.4.8
Added
- Snapcraft releases
- darwin/arm64 releases
usernamelabel from the gitlab_ci_environment_information flag
Removed
author_emaillabel from the gitlab_ci_environment_information flag (replaced byusername)
Changed
- Scoped down the projects fetched from wildcard onto the one starting with the owner's name to make it clearer for endusers
- Upgraded to go 1.16
- Bumped all dependencies to their latest versions
v0.4.7
Added
- Support for performing requests through a forward proxy using standard env variables
- New parameters to enable/disable/aggregate the export of the runner description which executed the job
- GPG sign released artifacts checksums
Changed
- Fixed a bug on child/downstream pipelines pull when the trigger has not been fired yet
- Made the default config local file location not hidden as it makes very little sense
- Updated examples/webhook with ngrok+docker-compose instead of hashicorp waypoint
- Bumped goreleaser to 0.155.0 and leverage docker buildx
- Enhanced logging of the settings at startup to get more visibility on the interpreted parameters
- Fixed a bug preventing the webhooks from working properly when pull is completely disabled in conjunction of wildcards
- Updated all dependencies
v0.4.6
Added
- When configured to export job metrics, it will now pull child/downstream pipelines jobs related ones as well
- New
runner_descriptionlabel for all thejobrelated metrics. - Release GitHub container registry based images: ghcr.io/mvisonneau/gitlab-ci-pipelines-exporter
- Release
arm64v8based container images as part of docker manifests in both docker.io and ghcr.io
Changed
- Ensure consistency of the exported metrics by distinguishing immutable from mutable labels used as metric key
- Updated all dependencies
- Migrated CI from Drone to GitHub actions
v0.4.5
Added
- Implemented a
max_age_secondsparameter to determine whether to pull a "stale ref" or not
Changed
- When fetching refs from pipelines, capped the maximum length to 100 in order to prevent the API call from failing
- Garbage collect merge requests refs in order to keep the depth value as a maximum
- Prevent potential nil pointers when exporting environments information
- Updated all dependencies
v0.4.4
Added
- Automatically refresh pkg.go.dev on new releases
Changed
- Do not delete environments metrics when ref is a tag which may not be configured to be monitored for pipelines/jobs (#182)
- Fixed a bug making
latest_commit_short_idlabels reflect incorrect information on environment metrics when tags are used as refs - Enhanced logging for jobs pulling function
- Bumped goreleaser to 0.147.1
- Bumped all dependencies
v0.4.3
New metrics and dashboards 🚀
| Pipelines ⬆️ | Jobs 🆕 | Environments & Deployments 🆕 |
|---|---|---|
![]() |
![]() |
![]() |
Added
- Export
environments/deploymentsrelated metrics - New
environments/deploymentsandjobsgrafana dashboards - Documented the list of exported metrics
- Released .deb and .rpm packages
- More complete garbage collector capabilities
- Newly supported statuses for pipelines and jobs:
created,waiting_for_resource,preparing,scheduled - GitLab links for pipelines, jobs, environments and deployments in the dashboards
Changed
- Prefix new releases with
^vto make pkg.go.dev happy - Bumped all dependencies
- Fixed race conditions during tests
- Always return coverage metric
- Enhanced the scheduling of the pull functions on init
- Improved webhook parsing functions performance
- Fixed a bug preventing the
gitlab_ci_pipeline_run_countfrom being initialized correctly at startup - Fixed the
gitlab_ci_pipeline_job_run_countandgitlab_ci_pipeline_run_countmetrics incrementing algorithm - Improved the
pipelinesgrafana dashboard - Fixed a bug which could lead to an overwrite of the refs and environments at scale, inducing unecessary GitLab API calls and discrepancy for some metrics
- Optimized the storage layer implementation
- Ensure group wildcards only returns projects belonging directly to the group


