Releases: mvisonneau/gitlab-ci-pipelines-exporter
Releases · mvisonneau/gitlab-ci-pipelines-exporter
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_second
has moved togitlab.maximum_requests_per_second
project_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_regexp
has moved toproject_defaults.pull.environments.regexp
project_defaults.pull.environments.tags_regexp
was 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_requests
on 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
branches
ortags
- Choose to export metrics for available
environments
only
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/defaults
andgo-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_metrics
globally 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
username
label from the gitlab_ci_environment_information flag
Removed
author_email
label 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_description
label for all thejob
related metrics. - Release GitHub container registry based images: ghcr.io/mvisonneau/gitlab-ci-pipelines-exporter
- Release
arm64v8
based 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_seconds
parameter 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_id
labels 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/deployments
related metrics - New
environments/deployments
andjobs
grafana 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
^v
to 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_count
from being initialized correctly at startup - Fixed the
gitlab_ci_pipeline_job_run_count
andgitlab_ci_pipeline_run_count
metrics incrementing algorithm - Improved the
pipelines
grafana 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
0.4.2
BREAKING CHANGES
- Moved helm chart definition to https://github.com/mvisonneau/helm-charts/tree/main/charts/gitlab-ci-pipelines-exporter
Added
- More unit tests!
Changed
- Fixed a bug preventing the webhooks implementation to correctly update the pertinent metrics (also creating pseudo duplicates)
- Fixed some missing columns and not ideal default sorting on the example grafana dashboard
- pkg/storage/local: added rw mutexes to prevent some read/write race condition issues from happening
- Bumped go-redis/redis/v8 to
v8.3.2
- Bumped goreleaser to
v0.145.0
- Bumped prometheus/client_golang to
v1.8.0
- Bumped xanzy/go-gitlab to
v0.38.2
- pkg/storage/local: added per variables mutexes
0.4.1
Added
- Garbage collector for projects, refs and metrics
By default, on regular basis, the exporter will now attempt to remove unconfigured/wanted projects, refs and associated metrics
Changed
- Disabled taskq consumers system resources checks which may leave the exporter in a hanging state
- Fixed a bug preventing the redis URL to be read from the config
- Project discovery from wildcards will now ignore projects with disabled jobs/pipelines feature
- Embeded taskq logs into logrus
- Prevent taskq consumer from being paused on errors
- Changed the way we handle project ref pipelines not being found, log in debug factory instead of erroring in a crashloop
- Bumped goreleaser to v0.144.1
- Improved logging
- Increased amount of items fetched per API call to 100 (maximum value)