1 package metrics 2 3 import ( 4 "fmt" 5 6 "github.com/prometheus/client_golang/prometheus" 7 8 "edge-infra.dev/pkg/lib/runtime/metrics" 9 ) 10 11 func init() { 12 metrics.Registry.MustRegister( 13 MessagesTotal, 14 RequeueErrorsTotal, 15 BadMessagesTotal, 16 IgnoredMessagesTotal, 17 ) 18 } 19 20 const namespace = "kinform_psqlinjector" 21 22 const ( 23 labelSuccessful = "successful" 24 labelPayloadType = "payload_type" 25 labelClusterEdgeID = "cluster_edge_id" 26 ) 27 28 // Kinform summary 29 var ( 30 MessagesTotal = prometheus.NewCounterVec( 31 prometheus.CounterOpts{ 32 Namespace: namespace, 33 Name: "messages_total", 34 Help: "Number of messages received by psqlinjector", 35 }, 36 []string{ 37 labelSuccessful, 38 labelPayloadType, 39 labelClusterEdgeID, 40 }, 41 ) 42 RequeueErrorsTotal = prometheus.NewCounterVec( 43 prometheus.CounterOpts{ 44 Namespace: namespace, 45 Name: "handler_errors_total", 46 Help: "Number of nackable errors", 47 }, 48 []string{ 49 labelPayloadType, 50 labelClusterEdgeID, 51 }, 52 ) 53 BadMessagesTotal = prometheus.NewCounterVec( 54 prometheus.CounterOpts{ 55 Namespace: namespace, 56 Name: "bad_messages_total", 57 Help: "Number of bad messages that can not be handled", 58 }, 59 []string{ 60 labelPayloadType, 61 labelClusterEdgeID, 62 }, 63 ) 64 IgnoredMessagesTotal = prometheus.NewCounterVec( 65 prometheus.CounterOpts{ 66 Namespace: namespace, 67 Name: "ignored_messages_total", 68 Help: "Number of ignored messages", 69 }, 70 []string{ 71 labelPayloadType, 72 labelClusterEdgeID, 73 }, 74 ) 75 ) 76 77 func IncMessagesTotal(payloadType, clusterEdgeID string, successful bool) { 78 MessagesTotal.With(prometheus.Labels{ 79 labelPayloadType: payloadType, 80 labelClusterEdgeID: clusterEdgeID, 81 labelSuccessful: fmt.Sprint(successful), 82 }).Inc() 83 } 84 85 func IncRequeueErrorsTotal(payloadType, clusterEdgeID string) { 86 RequeueErrorsTotal.With(prometheus.Labels{ 87 labelPayloadType: payloadType, 88 labelClusterEdgeID: clusterEdgeID, 89 }).Inc() 90 } 91 92 func IncBadMessagesTotal(payloadType, clusterEdgeID string) { 93 BadMessagesTotal.With(prometheus.Labels{ 94 labelPayloadType: payloadType, 95 labelClusterEdgeID: clusterEdgeID, 96 }).Inc() 97 } 98 99 func IncIgnoredMessagesTotal(payloadType, clusterEdgeID string) { 100 IgnoredMessagesTotal.With(prometheus.Labels{ 101 labelPayloadType: payloadType, 102 labelClusterEdgeID: clusterEdgeID, 103 }).Inc() 104 } 105