...

Source file src/edge-infra.dev/pkg/f8n/warehouse/forwarder/metrics.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/forwarder

     1  package forwarder
     2  
     3  import (
     4  	"github.com/prometheus/client_golang/prometheus"
     5  
     6  	"edge-infra.dev/pkg/lib/runtime/metrics"
     7  )
     8  
     9  func init() {
    10  	metrics.Registry.MustRegister(
    11  		PackageForwards,
    12  		PackageForwardSkips,
    13  		PackageForwardErrs,
    14  	)
    15  }
    16  
    17  const metricsNamespace = "forwarder"
    18  
    19  // Metrics related to forwarding packages
    20  var (
    21  	// TODO(aw): You can probably use reflection or just continue to hardcode it. The only requirement
    22  	// is to ensure that the fields and their values are returned in a stable order so that they match.
    23  	PackageLabels = []string{"Action", "Digest", "Tag", "ProjectID", "Repository"}
    24  
    25  	PackageForwards = prometheus.NewCounterVec(
    26  		prometheus.CounterOpts{
    27  			Namespace: metricsNamespace,
    28  			Name:      "package_forwards",
    29  			Help:      "Count of packages successfully forwarded",
    30  		}, PackageLabels)
    31  	PackageForwardSkips = prometheus.NewCounterVec(
    32  		prometheus.CounterOpts{
    33  			Namespace: metricsNamespace,
    34  			Name:      "package_forward_skips",
    35  			Help:      "Count of packages that were ignored and not forwarded",
    36  		}, PackageLabels)
    37  	PackageForwardErrs = prometheus.NewCounterVec(
    38  		prometheus.CounterOpts{
    39  			Namespace: metricsNamespace,
    40  			Name:      "package_forward_errs",
    41  			Help:      "Count of errors during package forwarding",
    42  		}, PackageLabels)
    43  )
    44  
    45  func IncPackageForwards(m Message) {
    46  	PackageForwards.WithLabelValues(m.Action, m.Digest, m.Tag, m.ProjectID, m.Repository).Inc()
    47  }
    48  
    49  func IncPackageForwardSkips(m Message) {
    50  	PackageForwardSkips.WithLabelValues(m.Action, m.Digest, m.Tag, m.ProjectID, m.Repository).Inc()
    51  }
    52  
    53  func IncPackageForwardErrs(m Message) {
    54  	PackageForwardErrs.WithLabelValues(m.Action, m.Digest, m.Tag, m.ProjectID, m.Repository).Inc()
    55  }
    56  

View as plain text