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]'
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  | {} |