Checks
Controller Version
0.9.2
Deployment Method
ArgoCD
Checks
To Reproduce
1. Install the gha-runner-scale-set controller and a listener and successfully run jobs.
2. Enable controller and listener metrics.
3. Try and create a histogram of startup or execution time using the standard Prometheus functions
Describe the bug
The labels on both gha_job_execution_duration_seconds and gha_job_startup_duration_seconds metrics mean that a new bucket is created for every run on every job, this means that every bucket will only ever contain a 0 or a 1. You cannot get meaningful information out of these metrics.
Prometheus is unable to aggregate metrics before applying rate() on them to produce histograms, so with the current layout of these metrics it is impossible to produce a histogram of startup or execution durations.
Describe the expected behavior
The gha_job_execution_duration_seconds and gha_job_startup_duration_seconds metrics should have less labels as to reduce cardinality.
Information should be put into buckets based on job_name, organisation, and repository only. Highly unique labels such as runner_id, runner_name, and job_workflow_ref should be removed.
Additional Context
Controller Logs
It says never to omit but this issue doesn't relate to controller logs.
N/A
Runner Pod Logs
Checks
Controller Version
0.9.2
Deployment Method
ArgoCD
Checks
To Reproduce
Describe the bug
The labels on both gha_job_execution_duration_seconds and gha_job_startup_duration_seconds metrics mean that a new bucket is created for every run on every job, this means that every bucket will only ever contain a 0 or a 1. You cannot get meaningful information out of these metrics.
Prometheus is unable to aggregate metrics before applying
rate()on them to produce histograms, so with the current layout of these metrics it is impossible to produce a histogram of startup or execution durations.Describe the expected behavior
The gha_job_execution_duration_seconds and gha_job_startup_duration_seconds metrics should have less labels as to reduce cardinality.
Information should be put into buckets based on job_name, organisation, and repository only. Highly unique labels such as
runner_id,runner_name, andjob_workflow_refshould be removed.Additional Context
N/AController Logs
Runner Pod Logs