Semantic Conventions for Redis

Status: Experimental

The Semantic Conventions for Redis extend and override the Database Semantic Conventions that describe common database operations attributes in addition to the Semantic Conventions described on this page.

db.system MUST be set to "redis".

Call-level attributes

Attribute Type Description Examples Requirement Level
db.redis.database_index int The index of the database being accessed as used in the SELECT command, provided as an integer. To be used instead of the generic db.name attribute. 0; 1; 15 Conditionally Required: If other than the default database (0).
db.statement string The full syntax of the Redis CLI command. [1] HMSET myhash field1 'Hello' field2 'World' Recommended: [2]

[1]: For Redis, the value provided for db.statement SHOULD correspond to the syntax of the Redis CLI. If, for example, the HMSET command is invoked, "HMSET myhash field1 'Hello' field2 'World'" would be a suitable value for db.statement.

[2]: Should be collected by default only if there is sanitization that excludes sensitive information.

Example

In this example, Redis is connected using a unix domain socket and therefore the connection string and server.address are left out. Furthermore, db.name is not specified as there is no database name in Redis and db.redis.database_index is set instead.

Key Value
Span name "HMSET myhash"
db.system "redis"
db.connection_string not set
db.user not set
server.socket.address "/tmp/redis.sock"
network.transport "Unix"
db.name not set
db.statement "HMSET myhash field1 'Hello' field2 'World"
db.operation not set
db.redis.database_index 15