From 2f4bb2a517dcf1992621683973fa5e77443a59c6 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Mon, 24 Aug 2020 16:30:53 -0700 Subject: [PATCH 1/3] change epoch --- azure_monitor/CHANGELOG.md | 3 +++ azure_monitor/examples/metrics/observer.py | 2 +- .../sdk/auto_collection/live_metrics/sender.py | 3 +-- .../sdk/auto_collection/live_metrics/utils.py | 14 ++++++++++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/azure_monitor/CHANGELOG.md b/azure_monitor/CHANGELOG.md index 8d3bebe..711e594 100644 --- a/azure_monitor/CHANGELOG.md +++ b/azure_monitor/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +- Change epoch for live metrics + ([#115](https://github.com/microsoft/opentelemetry-azure-monitor-python/pull/115)) + ## 0.4b.0 Released 2020-06-29 diff --git a/azure_monitor/examples/metrics/observer.py b/azure_monitor/examples/metrics/observer.py index 52f21ac..66b1c64 100644 --- a/azure_monitor/examples/metrics/observer.py +++ b/azure_monitor/examples/metrics/observer.py @@ -48,4 +48,4 @@ def get_ram_usage_callback(observer): label_keys=(), ) -input("Metrics will be printed soon. Press a key to finish...\n") +input("Press any key to exit...") diff --git a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/sender.py b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/sender.py index 27f39e3..9872efb 100644 --- a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/sender.py +++ b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/sender.py @@ -3,7 +3,6 @@ # import json import logging -import time import requests @@ -42,7 +41,7 @@ def _send_request(self, data: str, request_type: str) -> requests.Response: "Expect": "100-continue", "Content-Type": "application/json; charset=utf-8", utils.LIVE_METRICS_TRANSMISSION_TIME_HEADER: str( - round(time.time()) * 1000 + utils.get_time_since_epoch() ), }, ) diff --git a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py index cfba984..b099604 100644 --- a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py +++ b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -import time +import datetime import uuid from azure_monitor.protocol import LiveMetricEnvelope @@ -22,7 +22,17 @@ def create_metric_envelope(instrumentation_key: str): machine_name=azure_monitor_context.get("ai.device.id"), metrics=None, stream_id=STREAM_ID, - timestamp="/Date({0})/".format(str(int(time.time()) * 1000)), + timestamp="/Date({0})/".format(str(get_time_since_epoch())), version=azure_monitor_context.get("ai.internal.sdkVersion"), ) return envelope + + +def get_time_since_epoch(): + now = datetime.datetime.now() + # epoch is defined as 12:00:00 midnight on January 1, 0001 for Microsoft + epoch = datetime.datetime(1,1,1) + delta = (now - epoch).total_seconds() + # return the number of 100-nanosecond intervals + delta = round(delta * 10000000) + return delta From 7f6a5c626065a6338711f520d92744157fb71dd6 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Mon, 24 Aug 2020 16:35:11 -0700 Subject: [PATCH 2/3] lint --- .../azure_monitor/sdk/auto_collection/live_metrics/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py index b099604..3023319 100644 --- a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py +++ b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py @@ -31,8 +31,8 @@ def create_metric_envelope(instrumentation_key: str): def get_time_since_epoch(): now = datetime.datetime.now() # epoch is defined as 12:00:00 midnight on January 1, 0001 for Microsoft - epoch = datetime.datetime(1,1,1) + epoch = datetime.datetime(1, 1, 1) delta = (now - epoch).total_seconds() - # return the number of 100-nanosecond intervals + # return the number of 100-nanosecond intervals delta = round(delta * 10000000) return delta From dd212d03e08381db9513e27c6ab401d07d006f02 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Mon, 24 Aug 2020 18:40:54 -0700 Subject: [PATCH 3/3] revert time --- .../azure_monitor/sdk/auto_collection/live_metrics/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py index 3023319..5893497 100644 --- a/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py +++ b/azure_monitor/src/azure_monitor/sdk/auto_collection/live_metrics/utils.py @@ -2,6 +2,7 @@ # Licensed under the MIT License. # import datetime +import time import uuid from azure_monitor.protocol import LiveMetricEnvelope @@ -22,7 +23,7 @@ def create_metric_envelope(instrumentation_key: str): machine_name=azure_monitor_context.get("ai.device.id"), metrics=None, stream_id=STREAM_ID, - timestamp="/Date({0})/".format(str(get_time_since_epoch())), + timestamp="/Date({0})/".format(str(int(time.time()) * 1000)), version=azure_monitor_context.get("ai.internal.sdkVersion"), ) return envelope