redis/redis-py · error · RuntimeError
Metrics are enabled but no global MeterProvider is configure
Error message
Metrics are enabled but no global MeterProvider is configured.
Set up OpenTelemetry before initializing redis-py observability:
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
# Create exporter
exporter = OTLPMetricExporter(
endpoint='http://localhost:4318/v1/metrics'
)
# Create reader
reader = PeriodicExportingMetricReader(
exporter=exporter,
export_interval_millis=10000
)
# Create and set global provider
provider = MeterProvider(metric_readers=[reader])
metrics.set_meter_provider(provider)
# Now initialize redis-py observability
from redis.observability import get_observability_instance, OTelConfig
otel = get_observability_instance()
otel.init(OTelConfig(enable_metrics=True))
What it means
Error "Metrics are enabled but no global MeterProvider is configured. Set up OpenTelemetry before initializing redis-py observability: from opentelemetry import metrics from opentelemetry.sdk.metrics import MeterProvider from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter # Create exporter exporter = OTLPMetricExporter( endpoint='http://localhost:4318/v1/metrics' ) # Create reader reader = PeriodicExportingMetricReader( exporter=exporter, export_interval_millis=10000 ) # Create and set global provider provider = MeterProvider(metric_readers=[reader]) metrics.set_meter_provider(provider) # Now initialize redis-py observability from redis.observability import get_observability_instance, OTelConfig otel = get_observability_instance() otel.init(OTelConfig(enable_metrics=True)) " thrown in redis/redis-py.
Source
Thrown at redis/observability/providers.py:90
return None
# Lazy import - only import OTel when metrics are enabled
try:
from opentelemetry import metrics
from opentelemetry.metrics import NoOpMeterProvider
except ImportError:
raise ImportError(
"OpenTelemetry is not installed. Install it with:\n"
" pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-http"
)
# Get the global MeterProvider
if self._meter_provider is None:
self._meter_provider = metrics.get_meter_provider()
# Check if it's a real provider (not NoOp)
if isinstance(self._meter_provider, NoOpMeterProvider):
raise RuntimeError(
"Metrics are enabled but no global MeterProvider is configured.\n"
"\n"
"Set up OpenTelemetry before initializing redis-py observability:\n"
"\n"
" from opentelemetry import metrics\n"
" from opentelemetry.sdk.metrics import MeterProvider\n"
" from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader\n"
" from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter\n"
"\n"
" # Create exporter\n"
" exporter = OTLPMetricExporter(\n"
" endpoint='http://localhost:4318/v1/metrics'\n"
" )\n"
"\n"
" # Create reader\n"
" reader = PeriodicExportingMetricReader(\n"
" exporter=exporter,\n"
" export_interval_millis=10000\n"View on GitHub (pinned to da03cdc7e8)
When it happens
Trigger: Thrown at redis/observability/providers.py:90 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of redis/redis-py@da03cdc7e8 (2026-08-04).
Data as JSON: /data/errors/ee48e929e3000f74.json.
Report an issue: GitHub.