Redis¶
The logfire.instrument_redis()
method will create a span for every command executed by your Redis clients.
Installation¶
Install logfire
with the redis
extra:
pip install 'logfire[redis]'
uv add 'logfire[redis]'
rye add logfire -E redis
poetry add 'logfire[redis]'
Usage¶
Let's setup a container with Redis and run a Python script that connects to the Redis server to demonstrate how to use Logfire with Redis.
Setup a Redis Server Using Docker¶
First, we need to initialize a Redis server. This can be easily done using Docker with the following command:
docker run --name redis -p 6379:6379 -d redis:latest
Run the Python script¶
import logfire
import redis
logfire.configure()
logfire.instrument_redis()
client = redis.StrictRedis(host="localhost", port=6379)
client.set("my-key", "my-value")
async def main():
client = redis.asyncio.Redis(host="localhost", port=6379)
await client.get("my-key")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Info
You can pass capture_statement=True
to logfire.instrument_redis()
to capture the Redis command.
By default, it is set to False
given that Redis commands can contain sensitive information.
The keyword arguments of logfire.instrument_redis()
are passed to the RedisInstrumentor().instrument()
method of the OpenTelemetry Redis Instrumentation package, read more about it here.
API Reference¶
instrument_redis ¶
instrument_redis(
capture_statement: bool = False,
request_hook: RequestHook | None = None,
response_hook: ResponseHook | None = None,
**kwargs: Any,
) -> None
Instrument the redis
module so that spans are automatically created for each operation.
Uses the
OpenTelemetry Redis Instrumentation
library, specifically RedisInstrumentor().instrument()
, to which it passes **kwargs
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
bool
|
Set to |
False
|
|
RequestHook | None
|
A function that is called before performing the request. |
None
|
|
ResponseHook | None
|
A function that is called after receiving the response. |
None
|
|
Any
|
Additional keyword arguments to pass to the OpenTelemetry |
{}
|