From c3016fe99fb9aedf9ee27a7e2de270cf8557e736 Mon Sep 17 00:00:00 2001 From: Andrew Cowie Date: Fri, 29 Apr 2022 21:21:13 +1000 Subject: [PATCH] Prohibit empty metric field names --- core-telemetry/core-telemetry.cabal | 2 +- core-telemetry/lib/Core/Telemetry/Observability.hs | 10 ++++++++-- core-telemetry/package.yaml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core-telemetry/core-telemetry.cabal b/core-telemetry/core-telemetry.cabal index e747db48..aca1271b 100644 --- a/core-telemetry/core-telemetry.cabal +++ b/core-telemetry/core-telemetry.cabal @@ -5,7 +5,7 @@ cabal-version: 1.18 -- see: https://github.com/sol/hpack name: core-telemetry -version: 0.2.0.2 +version: 0.2.0.3 synopsis: Advanced telemetry description: This is part of a library to help build command-line programs, both tools and longer-running daemons. diff --git a/core-telemetry/lib/Core/Telemetry/Observability.hs b/core-telemetry/lib/Core/Telemetry/Observability.hs index 40c969b1..68139227 100644 --- a/core-telemetry/lib/Core/Telemetry/Observability.hs +++ b/core-telemetry/lib/Core/Telemetry/Observability.hs @@ -578,7 +578,10 @@ telemetry values = do ) where f :: Map JsonKey JsonValue -> MetricValue -> Map JsonKey JsonValue - f acc (MetricValue k v) = insertKeyValue k v acc + f acc (MetricValue k@(JsonKey text) v) = + if nullRope text + then error "Empty metric field name not allowed" + else insertKeyValue k v acc {- | Record telemetry about an event. Specify a label for the event and then @@ -629,7 +632,10 @@ sendEvent label values = do writeTQueue tel (Just datum') where f :: Map JsonKey JsonValue -> MetricValue -> Map JsonKey JsonValue - f acc (MetricValue k v) = insertKeyValue k v acc + f acc (MetricValue k@(JsonKey text) v) = + if nullRope text + then error "Empty metric field name not allowed" + else insertKeyValue k v acc -- get current time after digging out datum and override spanTimeFrom before -- sending Datum diff --git a/core-telemetry/package.yaml b/core-telemetry/package.yaml index 8530c2f8..bc716d50 100644 --- a/core-telemetry/package.yaml +++ b/core-telemetry/package.yaml @@ -1,5 +1,5 @@ name: core-telemetry -version: 0.2.0.2 +version: 0.2.0.3 synopsis: Advanced telemetry description: | This is part of a library to help build command-line programs, both tools and