| package dockerfile // import "github.com/docker/docker/builder/dockerfile" |
| |
| import ( |
| "github.com/docker/go-metrics" |
| ) |
| |
| 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) |
| } |