Releases: mvisonneau/gitlab-ci-pipelines-exporter
0.4.0
BREAKING CHANGES
-
The configuration syntax has been restructured quite a bit and some runtime flags have been moved in it as well. Refer to the updated documentation to check what you may need to update.
-
Some metrics have been renamed:
Original metric name | New metric name |
---|---|
gitlab_ci_pipeline_last_job_run_artifact_size | gitlab_ci_pipeline_job_artifact_size_bytes |
gitlab_ci_pipeline_last_job_run_artifact_size | gitlab_ci_pipeline_job_artifact_size_bytes |
gitlab_ci_pipeline_last_job_run_duration_seconds | gitlab_ci_pipeline_job_duration_seconds |
gitlab_ci_pipeline_last_job_run_id | gitlab_ci_pipeline_job_id |
gitlab_ci_pipeline_last_job_run_status | gitlab_ci_pipeline_job_status |
gitlab_ci_pipeline_last_run_duration_seconds | gitlab_ci_pipeline_duration_seconds |
gitlab_ci_pipeline_last_run_id | gitlab_ci_pipeline_id |
gitlab_ci_pipeline_last_run_status | gitlab_ci_pipeline_status |
gitlab_ci_pipeline_time_since_last_job_run_seconds | gitlab_ci_pipeline_job_timestamp |
gitlab_ci_pipeline_time_since_last_run_seconds | gitlab_ci_pipeline_timestamp |
-
On top of being renamed, the
.*time_since.*
metrics have been also converted to timestamps.
You will need to update your PromQL queries to leverage the new format. eg:time() - gitlab_ci_pipeline_timestamp
-
We now output sparse status metrics by default, if you want to revert to the default behaviour you will need to add this
statement to your config file:
defaults:
output_sparse_status_metrics: false
Added
- HA configuration capabilities using Redis (optional feature, example here)
- Push based approach leveraging pipelines & jobs webhooks (optional feature, example here)
- gosec testing
Changed
- Upgraded
urfave/cli
to v2 - Refactored the codebase to make it compliant with golang standards and more domain-driven
- Included the version of the app in the user agent of GitLab queries
- Rewritten the scheduling of the polling using
vmihailenco/taskq
- Updated the rate limiter to work globally across several workers
- Fixed an issue preventing the jobs from being updated accordingly when restarted
- Updated the example grafana dashboard with the new metrics naming
- Bumped Grafana and Prometheus versions in the example
Removed
polling_workers
configuration parameter
0.3.5
Changed
- Health endpoints to avoid issues with default configuration
- Bumped go-gitlab to
0.38.1
- Bumped golang to
1.15
- Switch default branch to main
0.3.4
Added
- New
gitlab_ci_pipeline_last_job_run_id
metric which returns the ID of the most recent job run.
Changed
- Fixed some issues with the polling of the jobs information which led to innacurate results.
- Bumped all dependencies
- goreleaser to
0.140.0
- go-gitlab to
0.33.0
- goreleaser to
0.3.3
0.3.2
Changed
- Fixed a bug where
gitlab_ci_pipeline_last_run_status
would not get updated after being fetched for the first time (#102) - Fixed a bug on
gitlab_ci_pipeline_run_count
, not being updated when a job in a pipeline gets restarted (linked to #102) - Bumped all dependencies
- goreleaser to
0.136.0
- go-gitlab to
0.32.0
- goreleaser to
0.3.1
Added
- Added
--enable-pprof
flag which provides pprof http endpoint at /debug/pprof
Changed
- Fixed a critical bug introduced with the refactoring of workers in v0.3.0 where the exporter would hang if there are more project refs to poll than workers available
- Fixed a bug where multiple go routines were accessing a single variable without semaphore
- Renamed
maximum_projects_poller_workers
intopolling_workers
- Enhanced signals handling using a global context with derivatives throughout go routines
0.3.0
BREAKING CHANGES
default_refs
&refs
parameter have been renamed respectively todefault_refs_regexp
andrefs_regexp
to make them more explicit- In the config, there is a new
defaults
parameter group for any setting which can be overridden at theproject
orwildcard
level. It includes the following parameters:- fetch_pipeline_job_metrics
- fetch_pipeline_variables
- output_sparse_status_metrics
- pipeline_variables_filter_regex
- refs_regexp
- Renamed the following parameters (their behaviour remains the same):
projects_polling_interval_seconds
intowildcards_projects_discover_interval_seconds
refs_polling_interval_seconds
intoprojects_refs_discover_interval_seconds
pipelines_polling_interval_seconds
intoprojects_refs_polling_interval_seconds
Added
kind
label on all metrics which reflects the type of the ref : branch, tag or merge-request- project/wildcard parameters
fetch_merge_request_pipelines_refs
andfetch_merge_request_pipelines_refs_init_limit
to enable the metrics polling of merge requests pipelines - Configuration for OpenMetrics Encoding in metrics HTTP endpoint. Enabled by default but can be disable using
disable_openmetrics_encoding: true
- Worker pool for projects polling: set
maximum_projects_poller_workers
with an integer value to control parallelism (defaults toruntime.GOMAXPROCS(0)
) - Augmented
disable_tls_verify
withdisable_health_check
additional parameter to drive the behaviour of checking healthiness of target service - Reading pipeline variables if enabled setting
fetch_pipeline_variables
totrue
(defaults tofalse
) - Pipeline variables can be filtered with
pipeline_variables_filter_regex
(defaults to.*
) - Configurable ServiceMonitor resource through the helm chart
Changed
- Projects polling from GitLab API is done in parallel using
maximum_projects_poller_workers
pollers and concurrently fetching refs and projects - Fixed a bug causing duplicate metrics when status changes with sparse flag enabled
- Updated labels syntax in helm chart to comply with standards
- Updated logging, using more extensively the log.WithFields parameter for an enhanced troubleshooting experience
- Bumped prometheus/client_golang to
1.6
0.2.14
Added
- Support for pipelines status :
manual
Changed
- Bumped go-gitlab to
v0.31.0
which includes an exponentional backoff retry mechanism on API errors - Renamed the
job
label intojob_name
- Fixed a bug in the helm deployment when using service labels
0.2.13
Added
-
new
fetch_pipeline_job_metrics
configuration flag (defaultfalse
).
When enabled, various statistics for the jobs from the last pipeline run will be collected. -
new
output_sparse_status_metrics
flag (defaultfalse
).
When enabled, only reports the status metric currently matching the last pipeline run.
Reduces reported metric count, at the cost of status values being expired from storage
if not seen in a long time.
Changed
- Corrected the ordering of variable assigments in the assertion tests functions
- Updated the user agent to
gitlab-ci-pipelines-exporter
- Bumped goreleaser to 0.129.0
0.2.12
Added
- Now using stretchr/testify for asserting test results
- Capability to filter in/out archived projects
Changed
- Fix
--gitlab-token
and improve docs/chart - Bumped to go 1.14
- Bumped goreleaser to 0.128.0