Skip to content

Commit 6a4ebf3

Browse files
authored
chore: include rule id in pyroscope_metrics_exporter_series_sent_total (#4454)
1 parent df50749 commit 6a4ebf3

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

pkg/metrics/exporter.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

pkg/model/recording_rule.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ type RecordingRule struct {
2020

2121
const (
2222
metricNamePrefix = "profiles_recorded_"
23-
ruleIdLabel = "profiles_rule_id"
23+
RuleIDLabel = "profiles_rule_id"
2424
)
2525

2626
var uniqueLabels = map[string]bool{
27-
ruleIdLabel: true,
27+
RuleIDLabel: true,
2828
prometheusmodel.MetricNameLabel: true,
2929
}
3030

@@ -77,7 +77,7 @@ func newRecordingRuleWithBuilder(rule *settingsv1.RecordingRule, sb *labels.Scra
7777
// trust rule.MetricName
7878
sb.Add(prometheusmodel.MetricNameLabel, rule.MetricName)
7979
// Inject recording rule Id
80-
sb.Add(ruleIdLabel, rule.Id)
80+
sb.Add(RuleIDLabel, rule.Id)
8181

8282
sb.Sort()
8383

0 commit comments

Comments
 (0)