@@ -20,6 +20,7 @@ import (
2020	"github.com/prometheus/prometheus/prompb" 
2121	"github.com/prometheus/prometheus/storage/remote" 
2222
23+ 	pyroscopemodel "github.com/grafana/pyroscope/pkg/model" 
2324	"github.com/grafana/pyroscope/pkg/tenant" 
2425)
2526
@@ -67,7 +68,20 @@ func (e *StaticExporter) Send(tenantId string, data []prompb.TimeSeries) error {
6768			level .Error (e .logger ).Log ("msg" , "unable to store prompb.WriteRequest" , "err" , err )
6869			return 
6970		}
70- 		e .metrics .seriesSent .WithLabelValues (tenantId ).Add (float64 (len (data )))
71+ 		seriesByRuleID  :=  make (map [string ]int )
72+ 		for  _ , ts  :=  range  data  {
73+ 			ruleID  :=  "unknown" 
74+ 			for  _ , l  :=  range  ts .Labels  {
75+ 				if  l .Name  ==  pyroscopemodel .RuleIDLabel  {
76+ 					ruleID  =  l .Value 
77+ 					break 
78+ 				}
79+ 			}
80+ 			seriesByRuleID [ruleID ]++ 
81+ 		}
82+ 		for  ruleID , count  :=  range  seriesByRuleID  {
83+ 			e .metrics .seriesSent .WithLabelValues (tenantId , ruleID ).Add (float64 (count ))
84+ 		}
7185	}(data )
7286	return  nil 
7387}
@@ -124,7 +138,7 @@ func newMetrics(reg prometheus.Registerer, remoteUrl string) *clientMetrics {
124138			Subsystem : "metrics_exporter" ,
125139			Name :      "series_sent_total" ,
126140			Help :      "Number of series sent on remote_write." ,
127- 		}, []string {"tenant" }),
141+ 		}, []string {"tenant" ,  "rule_id" }),
128142	}
129143	if  reg  !=  nil  {
130144		remoteUrlReg  :=  prometheus .WrapRegistererWith (prometheus.Labels {"url" : remoteUrl }, reg )
0 commit comments