From 5df4b17a801c3f68c5ea5cca7c8a3fc0f556ed5e Mon Sep 17 00:00:00 2001 From: Jeff Raubitschek Date: Mon, 22 Aug 2022 09:44:49 -0700 Subject: [PATCH 1/5] Add sentry session tracking --- wandb/util.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wandb/util.py b/wandb/util.py index 8b02d2e03a6..531163bbf32 100644 --- a/wandb/util.py +++ b/wandb/util.py @@ -254,6 +254,9 @@ def get(key: str) -> Any: if value is not None and value != "": scope.set_tag(tag, value) + # Track session so we can get metrics about error free rate + sentry_hub.start_session() + def vendor_setup() -> Callable: """This enables us to use the vendor directory for packages we don't depend on From d2065f36df3735d5e2def7bf3310878a45154556 Mon Sep 17 00:00:00 2001 From: Jeff Raubitschek Date: Mon, 22 Aug 2022 10:09:34 -0700 Subject: [PATCH 2/5] update --- wandb/util.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wandb/util.py b/wandb/util.py index 531163bbf32..836a53826fa 100644 --- a/wandb/util.py +++ b/wandb/util.py @@ -255,7 +255,8 @@ def get(key: str) -> Any: scope.set_tag(tag, value) # Track session so we can get metrics about error free rate - sentry_hub.start_session() + if sentry_hub: + sentry_hub.start_session() def vendor_setup() -> Callable: From eb3b23fdb3f5be2d3ad6b895dcfe0c6b83fa9e14 Mon Sep 17 00:00:00 2001 From: Jeff Raubitschek Date: Tue, 6 Sep 2022 12:08:58 -0700 Subject: [PATCH 3/5] Add sentry session mockserver --- .../t0_main/debug/t7_sentry_session.py | 32 +++++++++++++++++++ tests/unit_tests_old/utils/mock_server.py | 20 ++++++++++++ 2 files changed, 52 insertions(+) create mode 100755 tests/functional_tests/t0_main/debug/t7_sentry_session.py diff --git a/tests/functional_tests/t0_main/debug/t7_sentry_session.py b/tests/functional_tests/t0_main/debug/t7_sentry_session.py new file mode 100755 index 00000000000..c5e850c240e --- /dev/null +++ b/tests/functional_tests/t0_main/debug/t7_sentry_session.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +"""Base case - main process init/finish. + +--- +id: 0.core.02-with-finish +plugin: + - wandb +tag: + shard: standalone-cpu +var: + - num_sentry_sessions: + :fn:len: :wandb:sentry_sessions +assert: + - :wandb:runs_len: 1 + - :wandb:runs[0][config]: {} + - :wandb:runs[0][summary]: + m1: 1 + m2: 2 + - :wandb:runs[0][exitcode]: 0 + - :num_sentry_sessions: 2 +""" + +import time + +import wandb + +for x in range(1): + wandb.init() + wandb.log(dict(m1=1)) + wandb.log(dict(m2=2)) + # sleep needed for sentry to capture session info + time.sleep(80) diff --git a/tests/unit_tests_old/utils/mock_server.py b/tests/unit_tests_old/utils/mock_server.py index b119dd364d2..e9a4a934e58 100644 --- a/tests/unit_tests_old/utils/mock_server.py +++ b/tests/unit_tests_old/utils/mock_server.py @@ -97,6 +97,7 @@ def default_ctx(): "n_sweep_runs": 0, "code_saving_enabled": True, "sentry_events": [], + "sentry_sessions": [], "run_cuda_version": None, # relay mode, keep track of upsert runs for validation "relay_run_info": {}, @@ -2227,6 +2228,21 @@ def sentry_put(): ctx["sentry_events"].append(data) return "" + @app.route("/api/5288891/envelope/", methods=["POST"]) + def sentry_session_put(): + ctx = get_ctx() + data = request.get_data() + data = gzip.decompress(data) + data = str(data, "utf-8") + envelope = [] + for line in data.splitlines(): + if not line: + continue + line = json.loads(line) + envelope.append(line) + ctx["sentry_sessions"].append(envelope) + return "" + @app.errorhandler(404) def page_not_found(e): print(f"Got request to: {request.url} ({request.method})") @@ -2456,6 +2472,10 @@ def alerts(self): def sentry_events(self): return self._ctx.get("sentry_events") or [] + @property + def sentry_sessions(self): + return self._ctx.get("sentry_sessions") or [] + def _debug(self): if not self._run_id: items = {"run_ids": "run_ids", "artifacts": "artifacts"} From 3b58bd2e72fc3019a7d9ce9c01ba3c338fc9e771 Mon Sep 17 00:00:00 2001 From: Jeff Raubitschek Date: Tue, 6 Sep 2022 12:09:35 -0700 Subject: [PATCH 4/5] bump yea-wandb --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 2f9aee398a6..d6f7d8eb729 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ envlist= [base] setenv = - YEA_WANDB_VERSION = 0.8.12 + YEA_WANDB_VERSION = 0.8.13 [unitbase] deps = From 99de28cd6aac80c279c02f9322582c4fc65a8344 Mon Sep 17 00:00:00 2001 From: Jeff Raubitschek Date: Tue, 6 Sep 2022 13:12:14 -0700 Subject: [PATCH 5/5] update --- .../t0_main/debug/t7_sentry_session.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/functional_tests/t0_main/debug/t7_sentry_session.py b/tests/functional_tests/t0_main/debug/t7_sentry_session.py index c5e850c240e..7ecfa7d1348 100755 --- a/tests/functional_tests/t0_main/debug/t7_sentry_session.py +++ b/tests/functional_tests/t0_main/debug/t7_sentry_session.py @@ -2,7 +2,6 @@ """Base case - main process init/finish. --- -id: 0.core.02-with-finish plugin: - wandb tag: @@ -24,9 +23,8 @@ import wandb -for x in range(1): - wandb.init() - wandb.log(dict(m1=1)) - wandb.log(dict(m2=2)) - # sleep needed for sentry to capture session info - time.sleep(80) +wandb.init() +wandb.log(dict(m1=1)) +wandb.log(dict(m2=2)) +# sleep needed for sentry to capture sentry session info +time.sleep(80)