From b6509dca1f20a2dd43cfd88360d06d190c3f73c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sat, 15 Aug 2020 16:26:01 +0200 Subject: [PATCH] Split extra info and add more metrics (#1927) * Split extra * Restructure and add info * adjust test * Move docker version * Add name and repository for addons * Test supervisor version * Use context instead of extra * adjust test --- supervisor/misc/filter.py | 36 +++++++++++++++++++++++----------- tests/misc/test_filter_data.py | 5 +++-- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/supervisor/misc/filter.py b/supervisor/misc/filter.py index 74d3c8b42..312afda02 100644 --- a/supervisor/misc/filter.py +++ b/supervisor/misc/filter.py @@ -38,25 +38,39 @@ def filter_data(coresys: CoreSys, event: dict, hint: dict) -> dict: if coresys.core.state in (CoreStates.INITIALIZE, CoreStates.SETUP): return event + # List installed addons + installed_addons = [ + {"slug": addon.slug, "repository": addon.repository, "name": addon.name} + for addon in coresys.addons.installed + ] + # Update information - event.setdefault("extra", {}).update( + event.setdefault("contexts", {}).update( { "supervisor": { - "machine": coresys.machine, - "arch": coresys.arch.default, - "docker": coresys.docker.info.version, "channel": coresys.updater.channel, - "supervisor": coresys.supervisor.version, - "os": coresys.hassos.version, + "installed_addons": installed_addons, + "repositories": coresys.config.addons_repositories, + }, + "host": { + "arch": coresys.arch.default, + "board": coresys.hassos.board, + "deployment": coresys.host.info.deployment, + "disk_free_space": coresys.host.info.free_space, "host": coresys.host.info.operating_system, "kernel": coresys.host.info.kernel, - "core": coresys.homeassistant.version, + "machine": coresys.machine, + }, + "versions": { "audio": coresys.plugins.audio.version, - "dns": coresys.plugins.dns.version, - "multicast": coresys.plugins.multicast.version, "cli": coresys.plugins.cli.version, - "disk_free_space": coresys.host.info.free_space, - } + "core": coresys.homeassistant.version, + "dns": coresys.plugins.dns.version, + "docker": coresys.docker.info.version, + "multicast": coresys.plugins.multicast.version, + "os": coresys.hassos.version, + "supervisor": coresys.supervisor.version, + }, } ) event.setdefault("tags", []).extend( diff --git a/tests/misc/test_filter_data.py b/tests/misc/test_filter_data.py index 80b2f1d17..6ffc771bc 100644 --- a/tests/misc/test_filter_data.py +++ b/tests/misc/test_filter_data.py @@ -1,7 +1,7 @@ """Test sentry data filter.""" from unittest.mock import patch -from supervisor.const import CoreStates +from supervisor.const import SUPERVISOR_VERSION, CoreStates from supervisor.exceptions import AddonConfigurationError from supervisor.misc.filter import filter_data @@ -58,7 +58,8 @@ def test_defaults(coresys): filtered = filter_data(coresys, SAMPLE_EVENT, {}) assert ["installation_type", "supervised"] in filtered["tags"] - assert filtered["extra"]["supervisor"]["arch"] == "amd64" + assert filtered["contexts"]["host"]["arch"] == "amd64" + assert filtered["contexts"]["versions"]["supervisor"] == SUPERVISOR_VERSION def test_sanitize(coresys):