Duplicate gitlab_runner_autoscaling_machine_states metrics when multiple docker machine configured
Overview
When you have multiple docker-machine
executors configured in the same config.toml
we create duplicate metrics for gitlab_runner_autoscaling_machine_states
1 for each [[runner]]
however we don't add a label like the runner token so that we can distinguish between the runners which makes metric scraping hard
config.toml
concurrent = 20
check_interval = 1
listen_address = ":9402"
[session_server]
listen_address = "192.168.190.160:9422"
session_timeout = 1800
[[runners]]
name = "docker-machine"
url = "http://gdk.test:3000/"
token = "xxxx"
executor = "docker+machine"
[runners.docker]
tls_verify = false
image = "alpine:3.12"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.machine]
IdleCount = 1
MachineDriver = "virtualbox"
MachineName = "%s-local"
[[runners]]
name = "docker-machine"
url = "http://gdk.test:3000/"
token = "xxxx"
executor = "docker+machine"
[runners.docker]
tls_verify = false
image = "alpine:3.12"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.machine]
IdleCount = 1
MachineDriver = "virtualbox"
MachineName = "%s-local"
metrics
~ curl -s http://127.0.0.1:9402/metrics | grep 'gitlab_runner_autoscaling_machine_states'
# HELP gitlab_runner_autoscaling_machine_states The current number of machines per state in this provider.
# TYPE gitlab_runner_autoscaling_machine_states gauge
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="acquired"} 2
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="creating"} 0
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="idle"} 0
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="removing"} 0
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="stuck-on-removing"} 0
gitlab_runner_autoscaling_machine_states{executor="docker+machine",state="used"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="acquired"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="creating"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="idle"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="removing"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="stuck-on-removing"} 0
gitlab_runner_autoscaling_machine_states{executor="docker-ssh+machine",state="used"} 0
Edited by Steve Xuereb