From 985d2fa50d6e7c680149fcfb0118e39b2a995b61 Mon Sep 17 00:00:00 2001 From: viettranx Date: Sat, 28 Mar 2026 22:55:11 +0700 Subject: [PATCH] fix(heartbeat): log provider override and include in trace tags --- internal/heartbeat/ticker.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/heartbeat/ticker.go b/internal/heartbeat/ticker.go index e44fd776..c66f8c97 100644 --- a/internal/heartbeat/ticker.go +++ b/internal/heartbeat/ticker.go @@ -252,6 +252,8 @@ func (t *Ticker) runOne(ctx context.Context, hb store.AgentHeartbeat) { if provData, err := t.providerStore.GetProvider(ctx, *hb.ProviderID); err == nil { if prov, err := t.providerReg.GetForTenant(ag.TenantID, provData.Name); err == nil { providerOverride = prov + slog.Info("heartbeat.provider_override", + "agent", agentKey, "provider", provData.Name) } else { slog.Warn("heartbeat.provider_not_in_registry", "agent", agentKey, "provider_id", hb.ProviderID, "error", err) @@ -275,7 +277,7 @@ func (t *Ticker) runOne(ctx context.Context, hb store.AgentHeartbeat) { ProviderOverride: providerOverride, LightContext: hb.LightContext, TraceName: fmt.Sprintf("Heartbeat [%s]", agentKey), - TraceTags: []string{"heartbeat"}, + TraceTags: heartbeatTraceTags(providerOverride), }) outcome := <-outCh @@ -507,3 +509,11 @@ func deref(s *string) string { } return *s } + +// heartbeatTraceTags returns trace tags, including provider name when overridden. +func heartbeatTraceTags(providerOverride providers.Provider) []string { + if providerOverride != nil { + return []string{"heartbeat", "provider:" + providerOverride.Name()} + } + return []string{"heartbeat"} +}