From e69ec053def910d8f63ca05f871bf1b950cc3ae9 Mon Sep 17 00:00:00 2001 From: Aaron Peterson Date: Thu, 4 Sep 2025 16:44:43 -0700 Subject: [PATCH 1/3] Unify telemetry time units as ms --- dftimewolf/cli/dftimewolf_recipes.py | 5 +---- dftimewolf/lib/collectors/grr_base.py | 7 ++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/dftimewolf/cli/dftimewolf_recipes.py b/dftimewolf/cli/dftimewolf_recipes.py index dbac1ff35..4dc342705 100644 --- a/dftimewolf/cli/dftimewolf_recipes.py +++ b/dftimewolf/cli/dftimewolf_recipes.py @@ -522,10 +522,7 @@ def RunTool(cdm: Optional[CursesDisplayManager] = None) -> int: tool.telemetry.LogTelemetry('module', module, 'core', recipe_name) tool.telemetry.LogTelemetry( - 'workflow_start', - datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%fZ'), - 'core', - recipe_name) + 'workflow_start', time.time() * 1000, 'core', recipe_name) try: tool.ValidateArguments(tool.dry_run) diff --git a/dftimewolf/lib/collectors/grr_base.py b/dftimewolf/lib/collectors/grr_base.py index f711e4ec8..cd0c21b04 100644 --- a/dftimewolf/lib/collectors/grr_base.py +++ b/dftimewolf/lib/collectors/grr_base.py @@ -112,13 +112,14 @@ def _WrapGRRRequestWithApproval( approval_sent = False approval_url = None approval_url_shown = False - start = time.time() + # Log time in ms + start = time.time() * 1000 telemetry_callback({"mpa_start": str(start)}) while True: try: result = grr_function(*args, **kwargs) - telemetry_callback({"mpa_success": str(time.time())}) - telemetry_callback({"mpa_duration": str(time.time() - start)}) + telemetry_callback({"mpa_success": str(time.time() * 1000)}) + telemetry_callback({"mpa_duration": str((time.time() * 1000) - start)}) return result except grr_errors.AccessForbiddenError as exception: logger.warning(f"No valid approval found: {exception!s}") From 0d3c68e94bd3c5c268016786108324c9328d2c57 Mon Sep 17 00:00:00 2001 From: Aaron Peterson Date: Thu, 4 Sep 2025 16:57:26 -0700 Subject: [PATCH 2/3] fix float->str --- dftimewolf/cli/dftimewolf_recipes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dftimewolf/cli/dftimewolf_recipes.py b/dftimewolf/cli/dftimewolf_recipes.py index 4dc342705..e0993721d 100644 --- a/dftimewolf/cli/dftimewolf_recipes.py +++ b/dftimewolf/cli/dftimewolf_recipes.py @@ -522,7 +522,7 @@ def RunTool(cdm: Optional[CursesDisplayManager] = None) -> int: tool.telemetry.LogTelemetry('module', module, 'core', recipe_name) tool.telemetry.LogTelemetry( - 'workflow_start', time.time() * 1000, 'core', recipe_name) + 'workflow_start', str(time.time() * 1000), 'core', recipe_name) try: tool.ValidateArguments(tool.dry_run) From 6df41478f256072c87cee3faca7641c5275a00f5 Mon Sep 17 00:00:00 2001 From: Aaron Peterson Date: Thu, 4 Sep 2025 17:00:57 -0700 Subject: [PATCH 3/3] remove unused import --- dftimewolf/cli/dftimewolf_recipes.py | 1 - 1 file changed, 1 deletion(-) diff --git a/dftimewolf/cli/dftimewolf_recipes.py b/dftimewolf/cli/dftimewolf_recipes.py index e0993721d..691348747 100644 --- a/dftimewolf/cli/dftimewolf_recipes.py +++ b/dftimewolf/cli/dftimewolf_recipes.py @@ -4,7 +4,6 @@ import argparse from contextlib import redirect_stderr, redirect_stdout -import datetime import curses import logging import os