From 104867cb48da695694b3f48952e24f44a6de8905 Mon Sep 17 00:00:00 2001 From: chris erway Date: Tue, 21 Dec 2021 13:55:29 -0500 Subject: [PATCH 1/3] Add Version KV to telemetry events --- logging/log.go | 7 +++++++ logging/telemetry.go | 5 ++++- logging/telemetryCommon.go | 1 + logging/telemetryFilteredHook.go | 9 ++++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/logging/log.go b/logging/log.go index 2af5e9f634..527d6decb6 100644 --- a/logging/log.go +++ b/logging/log.go @@ -394,6 +394,13 @@ func (l logger) GetTelemetrySession() string { return l.loggerState.telemetry.telemetryConfig.SessionGUID } +func (l logger) GetTelemetryVersion() string { + if !l.GetTelemetryEnabled() { + return "" + } + return l.loggerState.telemetry.telemetryConfig.Version +} + func (l logger) GetTelemetryHostName() string { if !l.GetTelemetryEnabled() { return "" diff --git a/logging/telemetry.go b/logging/telemetry.go index f5bafc4bbe..c06830501a 100644 --- a/logging/telemetry.go +++ b/logging/telemetry.go @@ -132,12 +132,14 @@ func ReadTelemetryConfigOrDefault(dataDir string, genesisID string) (cfg Telemet return } } - ch := config.GetCurrentVersion().Channel + ver := config.GetCurrentVersion() + ch := ver.Channel // Should not happen, but default to "dev" if channel is unspecified. if ch == "" { ch = "dev" } cfg.ChainID = fmt.Sprintf("%s-%s", ch, genesisID) + cfg.Version = ver.String() return cfg, err } @@ -264,6 +266,7 @@ func (t *telemetryState) logTelemetry(l logger, message string, details interfac entry := l.entry.WithFields(Fields{ "session": l.GetTelemetrySession(), "instanceName": l.GetInstanceName(), + "v": l.GetTelemetryVersion(), }) // Populate entry like logrus.entry.log() does entry.Time = time.Now() diff --git a/logging/telemetryCommon.go b/logging/telemetryCommon.go index 6e14ea0906..2650805013 100644 --- a/logging/telemetryCommon.go +++ b/logging/telemetryCommon.go @@ -64,6 +64,7 @@ type TelemetryConfig struct { FilePath string // Path to file on disk, if any ChainID string `json:"-"` SessionGUID string `json:"-"` + Version string `json:"-"` UserName string Password string } diff --git a/logging/telemetryFilteredHook.go b/logging/telemetryFilteredHook.go index b681dd2f6c..a81b1925db 100644 --- a/logging/telemetryFilteredHook.go +++ b/logging/telemetryFilteredHook.go @@ -63,7 +63,7 @@ func (hook *telemetryFilteredHook) Fire(entry *logrus.Entry) error { if entry.Level <= hook.reportLogLevel { // Logging entry at a level which should include log history // Create a new entry augmented with the history field. - newEntry := entry.WithFields(Fields{"log": hook.history.string(), "session": hook.sessionGUID}) + newEntry := entry.WithFields(Fields{"log": hook.history.string(), "session": hook.sessionGUID, "v": hook.telemetryConfig.Version}) newEntry.Time = entry.Time newEntry.Level = entry.Level newEntry.Message = entry.Message @@ -82,6 +82,13 @@ func (hook *telemetryFilteredHook) Fire(entry *logrus.Entry) error { } else { newEntry = entry.WithField("session", hook.sessionGUID) } + + // Also add version field, if not already present. + if _, has := entry.Data["v"]; has { + newEntry = entry + } else { + newEntry = entry.WithField("v", hook.telemetryConfig.Version) + } return hook.wrappedHook.Fire(newEntry) } From 32345391133fcc58b2e6156676bfaa035d27cd56 Mon Sep 17 00:00:00 2001 From: chris erway <51567+cce@users.noreply.github.com> Date: Wed, 9 Feb 2022 17:10:51 -0500 Subject: [PATCH 2/3] Update logging/telemetryFilteredHook.go Co-authored-by: Will Winder --- logging/telemetryFilteredHook.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logging/telemetryFilteredHook.go b/logging/telemetryFilteredHook.go index a81b1925db..ef74acc6ca 100644 --- a/logging/telemetryFilteredHook.go +++ b/logging/telemetryFilteredHook.go @@ -85,9 +85,9 @@ func (hook *telemetryFilteredHook) Fire(entry *logrus.Entry) error { // Also add version field, if not already present. if _, has := entry.Data["v"]; has { - newEntry = entry + newEntry = newEntry } else { - newEntry = entry.WithField("v", hook.telemetryConfig.Version) + newEntry = newEntry.WithField("v", hook.telemetryConfig.Version) } return hook.wrappedHook.Fire(newEntry) } From 80e4305285a4ef2c6ae46dd7a9922bc0cc4fcd1d Mon Sep 17 00:00:00 2001 From: chris erway Date: Wed, 9 Feb 2022 17:15:24 -0500 Subject: [PATCH 3/3] fix suggestion --- logging/telemetryFilteredHook.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/logging/telemetryFilteredHook.go b/logging/telemetryFilteredHook.go index ef74acc6ca..b2382b46a9 100644 --- a/logging/telemetryFilteredHook.go +++ b/logging/telemetryFilteredHook.go @@ -84,9 +84,7 @@ func (hook *telemetryFilteredHook) Fire(entry *logrus.Entry) error { } // Also add version field, if not already present. - if _, has := entry.Data["v"]; has { - newEntry = newEntry - } else { + if _, has := entry.Data["v"]; !has { newEntry = newEntry.WithField("v", hook.telemetryConfig.Version) } return hook.wrappedHook.Fire(newEntry)