@@ -28,17 +28,25 @@ const (
2828
2929const noneOriginalSource = "none"
3030
31- // cloudeventsReceivedMetricsLabels - Array of labels added to cloudevents received metrics:
32- var cloudeventsReceivedMetricsLabels = []string {
31+ // cloudeventsReceivedBySourceMetricsLabels - Array of labels added to cloudevents received by source metrics:
32+ var cloudeventsReceivedBySourceMetricsLabels = []string {
3333 metricsSourceLabel , // source
3434 metricsConsumerLabel , // consumer
3535 metricsDataTypeLabel , // data type, e.g. manifests, manifestbundles
3636 metricsSubResourceLabel , // subresource, eg, spec or status
3737 metricsActionLabel , // action, eg, create, update, delete, resync_request, resync_response
3838}
3939
40- // cloudeventsSentMetricsLabels - Array of labels added to cloudevents sent metrics:
41- var cloudeventsSentMetricsLabels = []string {
40+ // cloudeventsReceivedByClientMetricsLabels - Array of labels added to cloudevents received by client metrics:
41+ var cloudeventsReceivedByClientMetricsLabels = []string {
42+ metricsSourceLabel , // source
43+ metricsDataTypeLabel , // data type, e.g. manifests, manifestbundles
44+ metricsSubResourceLabel , // subresource, eg, spec or status
45+ metricsActionLabel , // action, eg, create, update, delete, resync_request, resync_response
46+ }
47+
48+ // cloudeventsSentFromSourceMetricsLabels - Array of labels added to cloudevents sent from source metrics:
49+ var cloudeventsSentFromSourceMetricsLabels = []string {
4250 metricsSourceLabel , // source
4351 metricsOriginalSourceLabel , // original source, if no, set to "none"
4452 metricsConsumerLabel , // consumer
@@ -47,6 +55,15 @@ var cloudeventsSentMetricsLabels = []string{
4755 metricsActionLabel , // action, eg, create, update, delete, resync_request, resync_response
4856}
4957
58+ // cloudeventsSentFromClientMetricsLabels - Array of labels added to cloudevents sent from client metrics:
59+ var cloudeventsSentFromClientMetricsLabels = []string {
60+ metricsSourceLabel , // source
61+ metricsOriginalSourceLabel , // original source, if no, set to "none"
62+ metricsDataTypeLabel , // data type, e.g. manifests, manifestbundles
63+ metricsSubResourceLabel , // subresource, eg, spec or status
64+ metricsActionLabel , // action, eg, create, update, delete, resync_request, resync_response
65+ }
66+
5067// cloudeventsResyncMetricsLabels - Array of labels added to cloudevents resync metrics:
5168var cloudeventsResyncMetricsLabels = []string {
5269 metricsSourceLabel , // source
@@ -75,34 +92,60 @@ const (
7592 workProcessedCounter = "processed_total"
7693)
7794
78- // The cloudevents received counter metric is a counter with a base metric name of 'received_total'
79- // and a help string of 'The total number of received CloudEvents.'
80- // For example, 2 CloudEvents received from source1 to consumer1 with data type manifests, one for resource create,
95+ // The cloudevents received by source counter metric is a counter with a base metric name of 'received_by_source_total'
96+ // and a help string of 'The total number of CloudEvents received by source.'
97+ // For example, 2 CloudEvents received from agent to source with consumer1 for data type manifests, one for resource create,
98+ // another for resource update would result in the following metrics:
99+ // cloudevents_received_total{source="agent1",consumer="consumer1",type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="create"} 1
100+ // cloudevents_received_total{source="agent1",consumer="consumer1",type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="update"} 1
101+ var cloudeventsReceivedBySourceCounterMetric = prometheus .NewCounterVec (
102+ prometheus.CounterOpts {
103+ Subsystem : cloudeventsMetricsSubsystem ,
104+ Name : receivedCounterMetric ,
105+ Help : "The total number of CloudEvents received by source." ,
106+ },
107+ cloudeventsReceivedBySourceMetricsLabels ,
108+ )
109+
110+ // The cloudevents received by agent counter metric is a counter with a base metric name of 'received_by_agent_total'
111+ // and a help string of 'The total number of CloudEvents received by agent.'
112+ // For example, 2 CloudEvents received from source1 by agent with data type manifests, one for resource create,
81113// another for resource update would result in the following metrics:
82- // cloudevents_received_total{source="source1",consumer="consumer1", type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="create"} 1
83- // cloudevents_received_total{source="source1",consumer="consumer1", type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="update"} 1
84- var cloudeventsReceivedCounterMetric = prometheus .NewCounterVec (
114+ // cloudevents_received_total{source="source1",type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="create"} 1
115+ // cloudevents_received_total{source="source1",type="io.open-cluster-management.works.v1alpha1.manifests",subresource="spec",action="update"} 1
116+ var cloudeventsReceivedByClientCounterMetric = prometheus .NewCounterVec (
85117 prometheus.CounterOpts {
86118 Subsystem : cloudeventsMetricsSubsystem ,
87119 Name : receivedCounterMetric ,
88- Help : "The total number of received CloudEvents." ,
120+ Help : "The total number of CloudEvents received by client." ,
121+ },
122+ cloudeventsReceivedByClientMetricsLabels ,
123+ )
124+
125+ // The cloudevents sent from source counter metric is a counter with a base metric name of 'sent_from_source_total'
126+ // and a help string of 'The total number of CloudEvents sent from source.'
127+ // For example, 1 cloudevent sent from source1 to consumer1 with data type manifestbundles for resource spec create would result in the following metrics:
128+ // cloudevents_sent_total{source="source1",original_source="none",consumer="consumer1",type="io.open-cluster-management.works.v1alpha1.manifestbundles",subresource="spec",action="create"} 1
129+ var cloudeventsSentFromSourceCounterMetric = prometheus .NewCounterVec (
130+ prometheus.CounterOpts {
131+ Subsystem : cloudeventsMetricsSubsystem ,
132+ Name : sentCounterMetric ,
133+ Help : "The total number of CloudEvents sent from source." ,
89134 },
90- cloudeventsReceivedMetricsLabels ,
135+ cloudeventsSentFromSourceMetricsLabels ,
91136)
92137
93- // The cloudevents sent counter metric is a counter with a base metric name of 'sent_total'
94- // and a help string of 'The total number of sent CloudEvents.'
95- // For example, 1 cloudevent sent from source1 with data type manifestbundles for resource spec create (original source is empty),
96- // and 2 CloudEvents sent from consumer1-work-agent back to source1 for resource status update would result in the following metrics:
97- // cloudevents_sent_total{source="source1",original_source="none",type="io.open-cluster-management.works.v1alpha1.manifestbundles",subresource="spec",action="create"} 1
138+ // The cloudevents sent from agent counter metric is a counter with a base metric name of 'sent_from_agent_total'
139+ // and a help string of 'The total number of CloudEvents sent from agent.'
140+ // For example, 2 CloudEvents sent from consumer1-work-agent back to source1 for resource status update would result in the following metrics:
98141// cloudevents_sent_total{source="consumer1-work-agent",original_source="source1",type="io.open-cluster-management.works.v1alpha1.manifestbundles",subresource="status",action="update"} 2
99- var cloudeventsSentCounterMetric = prometheus .NewCounterVec (
142+ var cloudeventsSentFromClientCounterMetric = prometheus .NewCounterVec (
100143 prometheus.CounterOpts {
101144 Subsystem : cloudeventsMetricsSubsystem ,
102145 Name : sentCounterMetric ,
103- Help : "The total number of sent CloudEvents ." ,
146+ Help : "The total number of CloudEvents sent from client ." ,
104147 },
105- cloudeventsSentMetricsLabels ,
148+ cloudeventsSentFromClientMetricsLabels ,
106149)
107150
108151// The resource spec resync duration metric is a histogram with a base metric name of 'resource_spec_resync_duration_second'
@@ -195,68 +238,74 @@ var workProcessedCounterMetric = prometheus.NewCounterVec(
195238 workMetricsLabels ,
196239)
197240
198- // Register the metrics:
199- func RegisterCloudEventsMetrics (register prometheus.Registerer ) {
200- register .MustRegister (cloudeventsReceivedCounterMetric )
201- register .MustRegister (cloudeventsSentCounterMetric )
202- register .MustRegister (resourceSpecResyncDurationMetric )
241+ // Register the metrics
242+ func RegisterClientCloudEventsMetrics (register prometheus.Registerer ) {
243+ register .MustRegister (cloudeventsReceivedByClientCounterMetric )
244+ register .MustRegister (cloudeventsSentFromClientCounterMetric )
203245 register .MustRegister (resourceStatusResyncDurationMetric )
204- register .MustRegister (clientReconnectedCounterMetric )
205246 register .MustRegister (workProcessedCounterMetric )
206247}
207248
208- // Unregister the metrics:
209- func UnregisterCloudEventsMetrics (register prometheus.Registerer ) {
210- register .Unregister (cloudeventsReceivedCounterMetric )
211- register .Unregister (cloudeventsSentCounterMetric )
212- register .Unregister (resourceStatusResyncDurationMetric )
213- register .Unregister (resourceStatusResyncDurationMetric )
214- register .Unregister (clientReconnectedCounterMetric )
215- register .Unregister (workProcessedCounterMetric )
249+ // Register the metrics
250+ func RegisterSourceCloudEventsMetrics (register prometheus.Registerer ) {
251+ register .MustRegister (cloudeventsReceivedBySourceCounterMetric )
252+ register .MustRegister (cloudeventsSentFromSourceCounterMetric )
253+ register .MustRegister (resourceSpecResyncDurationMetric )
254+ register .MustRegister (clientReconnectedCounterMetric )
216255}
217256
218- // ResetCloudEventsMetrics resets all collectors
219- func ResetCloudEventsMetrics () {
220- cloudeventsReceivedCounterMetric .Reset ()
221- cloudeventsSentCounterMetric .Reset ()
222- resourceSpecResyncDurationMetric .Reset ()
223- resourceStatusResyncDurationMetric .Reset ()
224- clientReconnectedCounterMetric .Reset ()
225- workProcessedCounterMetric .Reset ()
257+ // increaseCloudEventsReceivedBySourceCounter increases the cloudevents received by source counter metric:
258+ func increaseCloudEventsReceivedBySourceCounter (source , consumer , dataType , subresource , action string ) {
259+ labels := prometheus.Labels {
260+ metricsSourceLabel : source ,
261+ metricsConsumerLabel : consumer ,
262+ metricsDataTypeLabel : dataType ,
263+ metricsSubResourceLabel : subresource ,
264+ metricsActionLabel : action ,
265+ }
266+ cloudeventsReceivedBySourceCounterMetric .With (labels ).Inc ()
226267}
227268
228- // increaseCloudEventsReceivedCounter increases the cloudevents received counter metric:
229- func increaseCloudEventsReceivedCounter (source , consumer , dataType , subresource , action string ) {
269+ // increaseCloudEventsReceivedByAgentCounter increases the cloudevents received by agent counter metric:
270+ func increaseCloudEventsReceivedByAgentCounter (source , dataType , subresource , action string ) {
230271 labels := prometheus.Labels {
231272 metricsSourceLabel : source ,
232273 metricsDataTypeLabel : dataType ,
233274 metricsSubResourceLabel : subresource ,
234275 metricsActionLabel : action ,
235276 }
236- // if it is called by the agent, the consumer is empty
237- if consumer != "" {
238- labels [metricsConsumerLabel ] = consumer
239- }
240- cloudeventsReceivedCounterMetric .With (labels ).Inc ()
277+ cloudeventsReceivedByAgentCounterMetric .With (labels ).Inc ()
241278}
242279
243- // increaseCloudEventsSentCounter increases the cloudevents sent counter metric:
244- func increaseCloudEventsSentCounter (source , originalSource , consumer , dataType , subresource , action string ) {
280+ // increaseCloudEventsSentFromSourceCounter increases the cloudevents sent from source counter metric:
281+ func increaseCloudEventsSentFromSourceCounter (source , originalSource , consumer , dataType , subresource , action string ) {
245282 if originalSource == "" {
246283 originalSource = noneOriginalSource
247284 }
248285 labels := prometheus.Labels {
249286 metricsSourceLabel : source ,
250287 metricsOriginalSourceLabel : originalSource ,
288+ metricsConsumerLabel : consumer ,
251289 metricsDataTypeLabel : dataType ,
252290 metricsSubResourceLabel : subresource ,
253291 metricsActionLabel : action ,
254292 }
255- // if it is called by the agent, the consumer is empty
256- if consumer != "" {
257- labels [metricsConsumerLabel ] = consumer
293+ cloudeventsSentFromSourceCounterMetric .With (labels ).Inc ()
294+ }
295+
296+ // increaseCloudEventsSentFromAgentCounter increases the cloudevents sent from agent counter metric:
297+ func increaseCloudEventsSentFromAgentCounter (source , originalSource , dataType , subresource , action string ) {
298+ if originalSource == "" {
299+ originalSource = noneOriginalSource
300+ }
301+ labels := prometheus.Labels {
302+ metricsSourceLabel : source ,
303+ metricsOriginalSourceLabel : originalSource ,
304+ metricsDataTypeLabel : dataType ,
305+ metricsSubResourceLabel : subresource ,
306+ metricsActionLabel : action ,
258307 }
259- cloudeventsSentCounterMetric .With (labels ).Inc ()
308+ cloudeventsSentFromAgentCounterMetric .With (labels ).Inc ()
260309}
261310
262311// updateResourceSpecResyncDurationMetric updates the resource spec resync duration metric:
0 commit comments