Skip to content

Commit 69ae8db

Browse files
authored
Add context to Sentry events during setup phase (#6308)
* Add context to Sentry events during setup phase Since not all properties are safe to access the current code avoids adding any context during initialization and setup phase. However, quite some reports are during the setup phase. This change adds some context to events during setup phase as well, to make debugging easier. * Drop default arch (not available during setup)
1 parent d85aedc commit 69ae8db

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

supervisor/misc/filter.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,19 @@ def filter_data(coresys: CoreSys, event: Event, hint: Hint) -> Event | None:
6464

6565
# Not full startup - missing information
6666
if coresys.core.state in (CoreState.INITIALIZE, CoreState.SETUP):
67+
# During SETUP, we have basic system info available for better debugging
68+
if coresys.core.state == CoreState.SETUP:
69+
event.setdefault("contexts", {}).update(
70+
{
71+
"versions": {
72+
"docker": coresys.docker.info.version,
73+
"supervisor": coresys.supervisor.version,
74+
},
75+
"host": {
76+
"machine": coresys.machine,
77+
},
78+
}
79+
)
6780
return event
6881

6982
# List installed addons

tests/misc/test_filter_data.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,17 @@ async def test_not_started(coresys):
115115
assert filter_data(coresys, SAMPLE_EVENT, {}) == SAMPLE_EVENT
116116

117117
await coresys.core.set_state(CoreState.SETUP)
118-
assert filter_data(coresys, SAMPLE_EVENT, {}) == SAMPLE_EVENT
118+
filtered = filter_data(coresys, SAMPLE_EVENT, {})
119+
# During SETUP, we should have basic system info available
120+
assert "contexts" in filtered
121+
assert "versions" in filtered["contexts"]
122+
assert "docker" in filtered["contexts"]["versions"]
123+
assert "supervisor" in filtered["contexts"]["versions"]
124+
assert "host" in filtered["contexts"]
125+
assert "machine" in filtered["contexts"]["host"]
126+
assert filtered["contexts"]["versions"]["docker"] == coresys.docker.info.version
127+
assert filtered["contexts"]["versions"]["supervisor"] == coresys.supervisor.version
128+
assert filtered["contexts"]["host"]["machine"] == coresys.machine
119129

120130

121131
async def test_defaults(coresys):

0 commit comments

Comments
 (0)