diff --git a/config.py b/config.py index 37a3a266f56c5737493cda1eab7d185122a6eaa1..595c97d4330f18c6e83c7f06f4ed63c29f58554d 100644 --- a/config.py +++ b/config.py @@ -964,6 +964,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 0078d41c3dd373c9b0b6f92a7473fb73b8dd8b03..3e141fcdf862c84d504cb25b59c4a864230815d8 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,