in executors/docker/machine/provider.go [627:699]
func newMachineProvider() *machineProvider {
name := "docker+machine"
provider := common.GetExecutorProvider("docker")
if provider == nil {
logrus.Panicln("docker executor provider not initialized")
}
return &machineProvider{
name: name,
details: make(machinesDetails),
runners: make(runnersDetails),
machine: docker.NewMachineCommand(),
provider: provider,
totalActions: prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "gitlab_runner_autoscaling_actions_total",
Help: "The total number of actions executed by the provider.",
ConstLabels: prometheus.Labels{
"executor": name,
},
},
[]string{"action"},
),
currentStatesDesc: prometheus.NewDesc(
"gitlab_runner_autoscaling_machine_states",
"The current number of machines per state in this provider.",
[]string{"state"},
prometheus.Labels{
"executor": name,
},
),
creationHistogram: prometheus.NewHistogram(
prometheus.HistogramOpts{
Name: "gitlab_runner_autoscaling_machine_creation_duration_seconds",
Help: "Histogram of machine creation time.",
Buckets: prometheus.ExponentialBuckets(30, 1.25, 10),
ConstLabels: prometheus.Labels{
"executor": name,
},
},
),
stoppingHistogram: prometheus.NewHistogram(
prometheus.HistogramOpts{
Name: "gitlab_runner_autoscaling_machine_stopping_duration_seconds",
Help: "Histogram of machine stopping time.",
Buckets: []float64{1, 3, 5, 10, 30, 50, 60, 80, 90, 120},
ConstLabels: prometheus.Labels{
"executor": name,
},
},
),
removalHistogram: prometheus.NewHistogram(
prometheus.HistogramOpts{
Name: "gitlab_runner_autoscaling_machine_removal_duration_seconds",
Help: "Histogram of machine removal time.",
Buckets: []float64{1, 3, 5, 10, 30, 50, 60, 80, 90, 120},
ConstLabels: prometheus.Labels{
"executor": name,
},
},
),
failedCreationHistogram: prometheus.NewHistogram(
prometheus.HistogramOpts{
Name: "gitlab_runner_autoscaling_machine_failed_creation_duration_seconds",
Help: "Histogram of machine failed creation timings",
Buckets: []float64{1, 3, 5, 10, 30, 50, 60, 80, 90, 120},
ConstLabels: prometheus.Labels{
"executor": name,
},
},
),
}
}