From 2c7f030ea5afd03422edfa155399fe478e80b3ba Mon Sep 17 00:00:00 2001 From: ning <710leo@gmail.com> Date: Fri, 12 May 2023 14:01:50 +0800 Subject: [PATCH] fix ident extract --- alert/dispatch/dispatch.go | 2 +- pushgw/router/router_remotewrite.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/alert/dispatch/dispatch.go b/alert/dispatch/dispatch.go index deb5e191..f44d5826 100644 --- a/alert/dispatch/dispatch.go +++ b/alert/dispatch/dispatch.go @@ -180,7 +180,7 @@ func (e *Dispatch) Send(rule *models.AlertRule, event *models.AlertCurEvent, not s := e.senders[channel] e.RwLock.RUnlock() if s == nil { - logger.Warningf("no sender for channel: %s", channel) + logger.Debugf("no sender for channel: %s", channel) continue } logger.Debugf("send event: %s, channel: %s", event.Hash, channel) diff --git a/pushgw/router/router_remotewrite.go b/pushgw/router/router_remotewrite.go index 730b73f7..d72e3502 100644 --- a/pushgw/router/router_remotewrite.go +++ b/pushgw/router/router_remotewrite.go @@ -11,6 +11,15 @@ import ( "github.com/prometheus/prometheus/prompb" ) +func extractMetricFromTimeSeries(s *prompb.TimeSeries) string { + for i := 0; i < len(s.Labels); i++ { + if s.Labels[i].Name == "__name__" { + return s.Labels[i].Value + } + } + return "" +} + func extractIdentFromTimeSeries(s *prompb.TimeSeries) string { for i := 0; i < len(s.Labels); i++ { if s.Labels[i].Name == "ident" { @@ -83,7 +92,7 @@ func (rt *Router) remoteWrite(c *gin.Context) { ident = extractIdentFromTimeSeries(req.Timeseries[i]) // telegraf 上报数据的场景,只有在 metric 为 system_load1 时,说明指标来自机器,将 host 改为 ident,其他情况都忽略 - if metric != "system_load1" { + if extractMetricFromTimeSeries(req.Timeseries[i]) != "system_load1" { ident = "" } -- GitLab