metrics.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package dockerfile // import "github.com/docker/docker/builder/dockerfile"
  2. import (
  3. metrics "github.com/docker/go-metrics"
  4. )
  5. var (
  6. buildsTriggered metrics.Counter
  7. buildsFailed metrics.LabeledCounter
  8. )
  9. // Build metrics prometheus messages, these values must be initialized before
  10. // using them. See the example below in the "builds_failed" metric definition.
  11. const (
  12. metricsDockerfileSyntaxError = "dockerfile_syntax_error"
  13. metricsDockerfileEmptyError = "dockerfile_empty_error"
  14. metricsCommandNotSupportedError = "command_not_supported_error"
  15. metricsErrorProcessingCommandsError = "error_processing_commands_error"
  16. metricsBuildTargetNotReachableError = "build_target_not_reachable_error"
  17. metricsMissingOnbuildArgumentsError = "missing_onbuild_arguments_error"
  18. metricsUnknownInstructionError = "unknown_instruction_error"
  19. metricsBuildCanceled = "build_canceled"
  20. )
  21. func init() {
  22. buildMetrics := metrics.NewNamespace("builder", "", nil)
  23. buildsTriggered = buildMetrics.NewCounter("builds_triggered", "Number of triggered image builds")
  24. buildsFailed = buildMetrics.NewLabeledCounter("builds_failed", "Number of failed image builds", "reason")
  25. for _, r := range []string{
  26. metricsDockerfileSyntaxError,
  27. metricsDockerfileEmptyError,
  28. metricsCommandNotSupportedError,
  29. metricsErrorProcessingCommandsError,
  30. metricsBuildTargetNotReachableError,
  31. metricsMissingOnbuildArgumentsError,
  32. metricsUnknownInstructionError,
  33. metricsBuildCanceled,
  34. } {
  35. buildsFailed.WithValues(r)
  36. }
  37. metrics.Register(buildMetrics)
  38. }