Skip to content

Commit 69a5999

Browse files
authored
Add observability instrument for redis client (#972)
1 parent b6defc6 commit 69a5999

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

backend/utils/otel.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
66
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
77
from opentelemetry.instrumentation.logging import LoggingInstrumentor
8+
from opentelemetry.instrumentation.redis import RedisInstrumentor
89
from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
910
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
1011
from opentelemetry.sdk._logs._internal.export import BatchLogRecordProcessor
@@ -15,6 +16,7 @@
1516
from backend.common.log import log, request_id_filter
1617
from backend.core.conf import settings
1718
from backend.database.db import async_engine
19+
from backend.database.redis import redis_client
1820

1921

2022
def init_otel(app: FastAPI) -> None:
@@ -56,4 +58,5 @@ def init_otel(app: FastAPI) -> None:
5658

5759
LoggingInstrumentor().instrument(set_logging_format=True)
5860
SQLAlchemyInstrumentor().instrument(engine=async_engine.sync_engine)
61+
RedisInstrumentor().instrument_client(redis_client) # type: ignore
5962
FastAPIInstrumentor.instrument_app(app, tracer_provider=tracer_provider)

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies = [
3939
"opentelemetry-exporter-otlp-proto-grpc>=1.39.0",
4040
"opentelemetry-instrumentation-fastapi>=0.60b0",
4141
"opentelemetry-instrumentation-logging>=0.60b0",
42+
"opentelemetry-instrumentation-redis>=0.60b0",
4243
"opentelemetry-instrumentation-sqlalchemy>=0.60b0",
4344
"opentelemetry-sdk>=1.39.0",
4445
"prometheus-client>=0.23.1",

requirements.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ opentelemetry-api==1.39.0
168168
# opentelemetry-instrumentation-asgi
169169
# opentelemetry-instrumentation-fastapi
170170
# opentelemetry-instrumentation-logging
171+
# opentelemetry-instrumentation-redis
171172
# opentelemetry-instrumentation-sqlalchemy
172173
# opentelemetry-sdk
173174
# opentelemetry-semantic-conventions
@@ -180,13 +181,16 @@ opentelemetry-instrumentation==0.60b0
180181
# opentelemetry-instrumentation-asgi
181182
# opentelemetry-instrumentation-fastapi
182183
# opentelemetry-instrumentation-logging
184+
# opentelemetry-instrumentation-redis
183185
# opentelemetry-instrumentation-sqlalchemy
184186
opentelemetry-instrumentation-asgi==0.60b0
185187
# via opentelemetry-instrumentation-fastapi
186188
opentelemetry-instrumentation-fastapi==0.60b0
187189
# via fastapi-best-architecture
188190
opentelemetry-instrumentation-logging==0.60b0
189191
# via fastapi-best-architecture
192+
opentelemetry-instrumentation-redis==0.60b0
193+
# via fastapi-best-architecture
190194
opentelemetry-instrumentation-sqlalchemy==0.60b0
191195
# via fastapi-best-architecture
192196
opentelemetry-proto==1.39.0
@@ -202,6 +206,7 @@ opentelemetry-semantic-conventions==0.60b0
202206
# opentelemetry-instrumentation
203207
# opentelemetry-instrumentation-asgi
204208
# opentelemetry-instrumentation-fastapi
209+
# opentelemetry-instrumentation-redis
205210
# opentelemetry-instrumentation-sqlalchemy
206211
# opentelemetry-sdk
207212
opentelemetry-util-http==0.60b0
@@ -399,6 +404,7 @@ win32-setctime==1.2.0 ; sys_platform == 'win32'
399404
wrapt==1.17.3
400405
# via
401406
# opentelemetry-instrumentation
407+
# opentelemetry-instrumentation-redis
402408
# opentelemetry-instrumentation-sqlalchemy
403409
wsproto==1.3.2
404410
# via simple-websocket

uv.lock

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)