Export app, process and log telemetry when OTEL_ENABLED is set
Adds tavolo.active_users and tavolo.ongoing_games gauges, process/CPython metrics via opentelemetry-instrumentation-system-metrics and OTLP log export. The game store tracks ongoing matches (Redis sorted set, in-memory set) and the session stores expose live counts for the gauges; a poller refreshes them since metric callbacks cannot await the stores.
This commit is contained in:
@@ -164,6 +164,19 @@ class OTelSettingsTests(unittest.TestCase):
|
||||
settings = _settings({"OTEL_EXCLUDED_PATHS": "/api/health, /metrics"})
|
||||
self.assertEqual(("/api/health", "/metrics"), settings.otel_excluded_paths)
|
||||
|
||||
def test_otel_interval_defaults(self):
|
||||
settings = _settings({})
|
||||
self.assertEqual(60000, settings.otel_metric_export_interval_millis)
|
||||
self.assertEqual(15, settings.otel_metrics_poll_interval_seconds)
|
||||
|
||||
def test_otel_intervals_parse(self):
|
||||
settings = _settings({
|
||||
"OTEL_METRIC_EXPORT_INTERVAL_MILLIS": "5000",
|
||||
"OTEL_METRICS_POLL_INTERVAL_SECONDS": "3",
|
||||
})
|
||||
self.assertEqual(5000, settings.otel_metric_export_interval_millis)
|
||||
self.assertEqual(3, settings.otel_metrics_poll_interval_seconds)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user