From 0b25e4e06333559dfba23685f1af77a240872cc5 Mon Sep 17 00:00:00 2001 From: joseph-hobbs Date: Fri, 26 Sep 2025 13:05:57 -0400 Subject: [PATCH] default to Unit.UNRECOGNIZED if unit is not present in Enum. --- dynatrace/environment_v2/metrics.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dynatrace/environment_v2/metrics.py b/dynatrace/environment_v2/metrics.py index 9a45386..c29516d 100644 --- a/dynatrace/environment_v2/metrics.py +++ b/dynatrace/environment_v2/metrics.py @@ -195,6 +195,7 @@ class Unit(Enum): RATIO = "Ratio" SECOND = "Second" STATE = "State" + UNRECOGNIZED = "Unrecognized" UNSPECIFIED = "Unspecified" WEEK = "Week" YEAR = "Year" @@ -227,9 +228,13 @@ def _create_from_raw_data(self, raw_element): self.root_cause_relevant: Optional[bool] = raw_element.get("rootCauseRelevant") self.tags: Optional[List[str]] = raw_element.get("tags") self.transformations: Optional[List[Transformation]] = [Transformation(element) for element in raw_element.get("transformations", [])] - self.unit: Optional[Unit] = Unit(raw_element.get("unit")) if raw_element.get("unit") else None self.warnings: Optional[List[str]] = raw_element.get("warnings") + # any metrics with a custom unit (not present in the Enum) will be set to 'Unrecognized'. + try: + self.unit: Optional[Unit] = Unit(raw_element.get("unit")) if raw_element.get("unit") else None + except ValueError: + self.unit = Unit.UNRECOGNIZED class ValueType(Enum): ERROR = "error"