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".


AttributeTypeDescriptionExamplesRequirement LevelStability
db.redis.database_indexintThe index of the database being accessed as used in the SELECT command, provided as an integer. To be used instead of the generic attribute.0; 1; 15Conditionally Required If other than the default database (0).Experimental
db.statementstringThe full syntax of the Redis CLI command. [1]HMSET myhash field1 'Hello' field2 'World'Recommended [2]Experimental
network.peer.addressstringPeer address of the database node where the operation was performed. [3]; /tmp/my.sockRecommendedStable
network.peer.portintPeer port number of the network connection.65123Recommended if and only if network.peer.address is set.Stable

[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.

[3]: If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.


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

Span name"HMSET myhash"
db.usernot set
db.namenot set
db.statement"HMSET myhash field1 'Hello' field2 'World"
db.operationnot set