From b13ba03e0c90cfb292863fd08d0b0e26e4a2ada0 Mon Sep 17 00:00:00 2001 From: Andrey Vertiprahov Date: Sun, 18 Sep 2022 08:41:54 +0500 Subject: [PATCH] Fix detect UTC offset for metriccollector. --- config.py | 14 ++++++++++++++ services/metricscollector/service.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index 8003c3e2e6..258dce08d0 100644 --- a/config.py +++ b/config.py @@ -1006,6 +1006,20 @@ class Config(BaseConfig): # Check quantiles is enabled return getattr(self.perfomance, f"enable_{name}_quantiles", False) + @property + def tz_utc_offset(self) -> int: + """ + Return UTC offset for configured timezone + :return: + """ + import pytz + import datetime + + if not hasattr(self, "_utcoffset"): + dt = datetime.datetime.now(tz=pytz.utc) + self._utcoffset = dt.astimezone(self.timezone).utcoffset() + return int(self._utcoffset.total_seconds()) + config = Config() config.load() diff --git a/services/metricscollector/service.py b/services/metricscollector/service.py index 0078d41c3d..3e141fcdf8 100755 --- a/services/metricscollector/service.py +++ b/services/metricscollector/service.py @@ -189,7 +189,7 @@ class MetricsCollectorService(FastAPIService): # Matched rule found if map_item.ch_table not in out: out[map_item.ch_table] = { - "ts": (item.ts.timestamp() + config.timezone._utcoffset.seconds) * NS, + "ts": (item.ts.timestamp() + config.tz_utc_offset) * NS, "scope": map_item.ch_table, "labels": item.labels, "service": item.service, -- GitLab