release: public alpha 0.6.0 baseline
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest import mock
|
||||
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
||||
SDK_SRC = PROJECT_ROOT / "packages" / "jwebot-sdk" / "src"
|
||||
KERNEL_SRC = PROJECT_ROOT / "packages" / "jwebot-kernel" / "src"
|
||||
sys.path[:0] = [str(SDK_SRC), str(KERNEL_SRC)]
|
||||
|
||||
from jwebot_kernel.telemetry import RuntimeTelemetry # noqa: E402
|
||||
|
||||
|
||||
class TelemetryTests(unittest.TestCase):
|
||||
def test_event_hashes_identifiers_and_drops_unknown_fields(self):
|
||||
observed = []
|
||||
logger = mock.Mock()
|
||||
telemetry = RuntimeTelemetry(
|
||||
component="edge",
|
||||
observer=observed.append,
|
||||
logger=logger,
|
||||
)
|
||||
|
||||
value = telemetry.emit(
|
||||
"edge.route.classified",
|
||||
event_id="private-event-id",
|
||||
group_id="private-group",
|
||||
route="local",
|
||||
reason="local_coin",
|
||||
component="attacker",
|
||||
message_body="must-not-appear",
|
||||
)
|
||||
|
||||
self.assertNotIn("private-event-id", str(dict(value)))
|
||||
self.assertNotIn("private-group", str(dict(value)))
|
||||
self.assertNotIn("message_body", value)
|
||||
self.assertEqual(value["route"], "local")
|
||||
self.assertEqual(value["component"], "edge")
|
||||
self.assertEqual(len(observed), 1)
|
||||
logger.info.assert_called_once()
|
||||
|
||||
def test_elapsed_updates_low_cardinality_snapshot(self):
|
||||
values = iter((10.0, 10.025))
|
||||
telemetry = RuntimeTelemetry(
|
||||
component="host-client",
|
||||
logger=mock.Mock(),
|
||||
monotonic=lambda: next(values),
|
||||
)
|
||||
started = telemetry.monotonic()
|
||||
telemetry.elapsed(
|
||||
"host.invoke",
|
||||
started,
|
||||
status="ok",
|
||||
plugin_id="coin",
|
||||
)
|
||||
|
||||
snapshot = telemetry.snapshot()
|
||||
self.assertEqual(snapshot["counts"]["host.invoke:ok"], 1)
|
||||
self.assertEqual(
|
||||
snapshot["latencies"]["host.invoke"]["average_ms"],
|
||||
25.0,
|
||||
)
|
||||
|
||||
def test_span_records_error_type_without_swallowing(self):
|
||||
observed = []
|
||||
values = iter((1.0, 1.01))
|
||||
telemetry = RuntimeTelemetry(
|
||||
component="edge",
|
||||
observer=observed.append,
|
||||
logger=mock.Mock(),
|
||||
monotonic=lambda: next(values),
|
||||
)
|
||||
|
||||
with self.assertRaisesRegex(RuntimeError, "failed"):
|
||||
with telemetry.span("edge.local.execute", route="local"):
|
||||
raise RuntimeError("failed")
|
||||
|
||||
self.assertEqual(observed[0]["status"], "error")
|
||||
self.assertEqual(observed[0]["error_type"], "RuntimeError")
|
||||
self.assertNotIn("failed", str(dict(observed[0])))
|
||||
|
||||
def test_disabled_telemetry_has_no_side_effects(self):
|
||||
observer = mock.Mock()
|
||||
logger = mock.Mock()
|
||||
telemetry = RuntimeTelemetry(
|
||||
component="edge",
|
||||
enabled=False,
|
||||
observer=observer,
|
||||
logger=logger,
|
||||
)
|
||||
|
||||
self.assertEqual(dict(telemetry.emit("edge.test")), {})
|
||||
observer.assert_not_called()
|
||||
logger.info.assert_not_called()
|
||||
self.assertEqual(telemetry.snapshot()["counts"], {})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user