{"id":"b1e43785a5d094fa","repo":"redis/redis-py","slug":"opentelemetry-is-not-installed-install-it-with","errorCode":null,"errorMessage":"OpenTelemetry is not installed. Install it with:\n  pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http","messagePattern":"OpenTelemetry is not installed\\. Install it with:\n  pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"redis/observability/providers.py","lineNumber":79,"sourceCode":"        \"\"\"\n        Get the global MeterProvider set by the application.\n\n        Returns:\n            MeterProvider instance or None if metrics are disabled\n\n        Raises:\n            ImportError: If OpenTelemetry is not installed\n            RuntimeError: If metrics are enabled but no global MeterProvider is set\n        \"\"\"\n        if not self.config.is_enabled():\n            return None\n\n        # Lazy import - only import OTel when metrics are enabled\n        try:\n            from opentelemetry import metrics\n            from opentelemetry.metrics import NoOpMeterProvider\n        except ImportError:\n            raise ImportError(\n                \"OpenTelemetry is not installed. Install it with:\\n\"\n                \"  pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http\"\n            )\n\n        # Get the global MeterProvider\n        if self._meter_provider is None:\n            self._meter_provider = metrics.get_meter_provider()\n\n            # Check if it's a real provider (not NoOp)\n            if isinstance(self._meter_provider, NoOpMeterProvider):\n                raise RuntimeError(\n                    \"Metrics are enabled but no global MeterProvider is configured.\\n\"\n                    \"\\n\"\n                    \"Set up OpenTelemetry before initializing redis-py observability:\\n\"\n                    \"\\n\"\n                    \"  from opentelemetry import metrics\\n\"\n                    \"  from opentelemetry.sdk.metrics import MeterProvider\\n\"\n                    \"  from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader\\n\"","sourceCodeStart":61,"sourceCodeEnd":97,"githubUrl":"https://github.com/redis/redis-py/blob/da03cdc7e8731092b13e395605c3c1fb2de25de1/redis/observability/providers.py#L61-L97","documentation":"Error \"OpenTelemetry is not installed. Install it with:\n  pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http\" thrown in redis/redis-py.","triggerScenarios":"Thrown at redis/observability/providers.py:79 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"da03cdc7e8731092b13e395605c3c1fb2de25de1","analyzedAt":"2026-08-04T20:26:47.563Z","schemaVersion":2}