@@ -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