@@ -39,6 +39,11 @@ type querierMetrics struct {
3939 profileTypesHistogram * prometheus.HistogramVec
4040 rangeHistogram * prometheus.HistogramVec
4141 mergeHistogram * prometheus.HistogramVec
42+ labelsCounter * prometheus.CounterVec
43+ valuesCounter * prometheus.CounterVec
44+ profileTypesCounter * prometheus.CounterVec
45+ rangeCounter * prometheus.CounterVec
46+ mergeCounter * prometheus.CounterVec
4247}
4348
4449type Querier struct {
@@ -111,6 +116,42 @@ func NewQuerier(
111116 },
112117 []string {"grpc_code" , "range" , "labels" },
113118 ),
119+ labelsCounter : promauto .With (reg ).NewCounterVec (
120+ prometheus.CounterOpts {
121+ Name : "parca_client_labels_total" ,
122+ Help : "Total number of Labels requests against Parca" ,
123+ },
124+ []string {"grpc_code" },
125+ ),
126+ valuesCounter : promauto .With (reg ).NewCounterVec (
127+ prometheus.CounterOpts {
128+ Name : "parca_client_values_total" ,
129+ Help : "Total number of Values requests against Parca" ,
130+ },
131+ []string {"grpc_code" , "label" },
132+ ),
133+ profileTypesCounter : promauto .With (reg ).NewCounterVec (
134+ prometheus.CounterOpts {
135+ Name : "parca_client_profiletypes_total" ,
136+ Help : "Total number of ProfileTypes requests against Parca" ,
137+ },
138+ []string {"grpc_code" },
139+ ),
140+ rangeCounter : promauto .With (reg ).NewCounterVec (
141+ prometheus.CounterOpts {
142+ Name : "parca_client_queryrange_total" ,
143+ Help : "Total number of QueryRange requests against Parca" ,
144+ },
145+ []string {"grpc_code" , "range" , "labels" },
146+ ),
147+ mergeCounter : promauto .With (reg ).NewCounterVec (
148+ prometheus.CounterOpts {
149+ Name : "parca_client_query_total" ,
150+ Help : "Total number of Query requests against Parca" ,
151+ ConstLabels : map [string ]string {"mode" : "merge" },
152+ },
153+ []string {"grpc_code" , "range" , "labels" },
154+ ),
114155 },
115156 client : client ,
116157 queryTimeRanges : queryTimeRangesConf ,
@@ -228,9 +269,11 @@ func (q *Querier) fetchProfileTypes(ctx context.Context, tr time.Duration) (
228269 latency := time .Since (queryStart )
229270 if err != nil {
230271 q .metrics .profileTypesHistogram .WithLabelValues (connect .CodeOf (err ).String ()).Observe (latency .Seconds ())
272+ q .metrics .profileTypesCounter .WithLabelValues (connect .CodeOf (err ).String ()).Inc ()
231273 return nil , latency , err
232274 }
233275 q .metrics .profileTypesHistogram .WithLabelValues (grpcCodeOK ).Observe (latency .Seconds ())
276+ q .metrics .profileTypesCounter .WithLabelValues (grpcCodeOK ).Inc ()
234277 return resp .Msg .Types , latency , nil
235278}
236279
@@ -256,10 +299,12 @@ func (q *Querier) queryLabels(ctx context.Context, interval time.Duration) {
256299 latency := time .Since (queryStart )
257300 if err != nil {
258301 q .metrics .labelsHistogram .WithLabelValues (connect .CodeOf (err ).String ()).Observe (latency .Seconds ())
302+ q .metrics .labelsCounter .WithLabelValues (connect .CodeOf (err ).String ()).Inc ()
259303 log .Printf ("labels(type=%s,over=%s): failed to make request %d: %v\n " , pt , tr , count , err )
260304 return
261305 }
262306 q .metrics .labelsHistogram .WithLabelValues (grpcCodeOK ).Observe (latency .Seconds ())
307+ q .metrics .labelsCounter .WithLabelValues (grpcCodeOK ).Inc ()
263308 log .Printf (
264309 "labels(type=%s,over=%s): took %v and got %d results\n " ,
265310 pt ,
@@ -308,10 +353,8 @@ func (q *Querier) queryValues(ctx context.Context, interval time.Duration) {
308353 resp , err = q .client .Values (ctx , connect .NewRequest (req ))
309354 latency := time .Since (queryStart )
310355 if err != nil {
311- q .metrics .valuesHistogram .WithLabelValues (
312- connect .CodeOf (err ).String (),
313- lbl ,
314- ).Observe (latency .Seconds ())
356+ q .metrics .valuesHistogram .WithLabelValues (connect .CodeOf (err ).String (), lbl ).Observe (latency .Seconds ())
357+ q .metrics .valuesCounter .WithLabelValues (connect .CodeOf (err ).String (), lbl ).Inc ()
315358 log .Printf (
316359 "values(label=%s,type=%s,over=%s): failed to make request %d: %v\n " ,
317360 lbl ,
@@ -323,6 +366,7 @@ func (q *Querier) queryValues(ctx context.Context, interval time.Duration) {
323366 return
324367 }
325368 q .metrics .valuesHistogram .WithLabelValues (grpcCodeOK , lbl ).Observe (latency .Seconds ())
369+ q .metrics .valuesCounter .WithLabelValues (grpcCodeOK , lbl ).Inc ()
326370 log .Printf (
327371 "values(label=%s,type=%s,over=%s): took %v and got %d results\n " ,
328372 lbl ,
@@ -396,6 +440,9 @@ func (q *Querier) queryRange(ctx context.Context) {
396440 q .metrics .rangeHistogram .WithLabelValues (
397441 connect .CodeOf (err ).String (), tr .String (), labelSelector ,
398442 ).Observe (latency .Seconds ())
443+ q .metrics .rangeCounter .WithLabelValues (
444+ connect .CodeOf (err ).String (), tr .String (), labelSelector ,
445+ ).Inc ()
399446 log .Printf (
400447 "range(query=%s,over=%s,labels=%s): failed to make request: %v\n " ,
401448 query ,
@@ -407,10 +454,14 @@ func (q *Querier) queryRange(ctx context.Context) {
407454 }
408455
409456 q .metrics .rangeHistogram .WithLabelValues (
457+ grpcCodeOK , tr .String (),
458+ labelSelector ,
459+ ).Observe (latency .Seconds ())
460+ q .metrics .rangeCounter .WithLabelValues (
410461 grpcCodeOK ,
411462 tr .String (),
412463 labelSelector ,
413- ).Observe ( latency . Seconds () )
464+ ).Inc ( )
414465 log .Printf (
415466 "range(query=%s,over=%s,labels=%s): took %s and got %d series\n " ,
416467 query , tr , labelSelector , latency , len (resp .Msg .Series ),
@@ -452,10 +503,14 @@ func (q *Querier) queryMerge(ctx context.Context) {
452503 latency := time .Since (queryStart )
453504 if err != nil {
454505 q .metrics .mergeHistogram .WithLabelValues (
506+ connect .CodeOf (err ).String (), tr .String (),
507+ labelSelector ,
508+ ).Observe (latency .Seconds ())
509+ q .metrics .mergeCounter .WithLabelValues (
455510 connect .CodeOf (err ).String (),
456511 tr .String (),
457512 labelSelector ,
458- ).Observe ( latency . Seconds () )
513+ ).Inc ( )
459514
460515 log .Printf (
461516 "merge(query=%s,over=%s,labels=%s): failed to make request: %v\n " ,
@@ -465,10 +520,14 @@ func (q *Querier) queryMerge(ctx context.Context) {
465520 }
466521
467522 q .metrics .mergeHistogram .WithLabelValues (
523+ grpcCodeOK , tr .String (),
524+ labelSelector ,
525+ ).Observe (latency .Seconds ())
526+ q .metrics .mergeCounter .WithLabelValues (
468527 grpcCodeOK ,
469528 tr .String (),
470529 labelSelector ,
471- ).Observe ( latency . Seconds () )
530+ ).Inc ( )
472531
473532 log .Printf (
474533 "merge(query=%s,over=%s,labels=%s): took %s\n " ,
0 commit comments