2018-02-05 16:05:59 -05:00
|
|
|
package dockerfile // import "github.com/docker/docker/builder/dockerfile"
|
2017-04-24 07:32:01 -04:00
|
|
|
|
|
|
|
import (
|
2019-08-05 10:37:47 -04:00
|
|
|
metrics "github.com/docker/go-metrics"
|
2017-04-24 07:32:01 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
buildsTriggered metrics.Counter
|
|
|
|
buildsFailed metrics.LabeledCounter
|
|
|
|
)
|
|
|
|
|
|
|
|
// Build metrics prometheus messages, these values must be initialized before
|
|
|
|
// using them. See the example below in the "builds_failed" metric definition.
|
|
|
|
const (
|
|
|
|
metricsDockerfileSyntaxError = "dockerfile_syntax_error"
|
|
|
|
metricsDockerfileEmptyError = "dockerfile_empty_error"
|
|
|
|
metricsCommandNotSupportedError = "command_not_supported_error"
|
|
|
|
metricsErrorProcessingCommandsError = "error_processing_commands_error"
|
|
|
|
metricsBuildTargetNotReachableError = "build_target_not_reachable_error"
|
|
|
|
metricsMissingOnbuildArgumentsError = "missing_onbuild_arguments_error"
|
|
|
|
metricsUnknownInstructionError = "unknown_instruction_error"
|
|
|
|
metricsBuildCanceled = "build_canceled"
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
buildMetrics := metrics.NewNamespace("builder", "", nil)
|
|
|
|
|
|
|
|
buildsTriggered = buildMetrics.NewCounter("builds_triggered", "Number of triggered image builds")
|
|
|
|
buildsFailed = buildMetrics.NewLabeledCounter("builds_failed", "Number of failed image builds", "reason")
|
|
|
|
for _, r := range []string{
|
|
|
|
metricsDockerfileSyntaxError,
|
|
|
|
metricsDockerfileEmptyError,
|
|
|
|
metricsCommandNotSupportedError,
|
|
|
|
metricsErrorProcessingCommandsError,
|
|
|
|
metricsBuildTargetNotReachableError,
|
|
|
|
metricsMissingOnbuildArgumentsError,
|
|
|
|
metricsUnknownInstructionError,
|
|
|
|
metricsBuildCanceled,
|
|
|
|
} {
|
|
|
|
buildsFailed.WithValues(r)
|
|
|
|
}
|
|
|
|
|
|
|
|
metrics.Register(buildMetrics)
|
|
|
|
}
|