From c741c23616f73d4fde3a5d51fa0eaf05dd9f6bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandor=20Sz=C3=BCcs?= Date: Thu, 1 Oct 2026 18:18:45 +0200 Subject: [PATCH] feature: log targets so we can understand which target is not reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Example logs: ``` level=warn name=parca ts=2026-10-01T15:59:38.604720292Z caller=grpc.go:66 msg="failed to forward profiles" err="rpc error: code = Unavailable desc = upstream connect error or disconnect/reset before headers. reset reason: connection termination" level=warn name=parca ts=2026-10-01T15:59:38.604714433Z caller=grpc.go:66 msg="failed to forward profiles" err="rpc error: code = Unavailable desc = upstream connect error or disconnect/reset before headers. reset reason: connection termination" ``` Signed-off-by: Sandor Szücs --- pkg/profilestore/grpc.go | 6 +++++- pkg/scrape/scrape.go | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/profilestore/grpc.go b/pkg/profilestore/grpc.go index 0b4dab84544..8d31c28c009 100644 --- a/pkg/profilestore/grpc.go +++ b/pkg/profilestore/grpc.go @@ -63,7 +63,11 @@ func (s *GRPCForwarder) WriteRaw(ctx context.Context, req *profilestorepb.WriteR // See https://github.com/parca-dev/parca-agent/blob/main/pkg/agent/write_client.go#L28 resp, err := s.client.WriteRaw(ctx, req) if err != nil { - level.Warn(s.logger).Log("msg", "failed to forward profiles", "err", err) + target, ok := ctx.Value("target").(string) + if !ok { + target = "unknown" + } + level.Warn(s.logger).Log("msg", "failed to forward profiles", "target", target, "err", err) } return resp, err } diff --git a/pkg/scrape/scrape.go b/pkg/scrape/scrape.go index c7c1d71bcdb..44f175ca7ff 100644 --- a/pkg/scrape/scrape.go +++ b/pkg/scrape/scrape.go @@ -649,6 +649,8 @@ func processScrapeResp(ctx context.Context, buf *bytes.Buffer, sl *scrapeLoop, p byt = newBuf.Bytes() } + target := sl.target.String() + ctx = context.WithValue(ctx, "target", target) _, err = sl.store.WriteRaw(ctx, &profilepb.WriteRawRequest{ Normalized: sl.normalizedAddresses, Series: []*profilepb.RawProfileSeries{