3.5 KiB
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".
Attributes
| Attribute | Type | Description | Examples | Requirement Level | Stability |
|---|---|---|---|---|---|
db.namespace |
string | The index of the database being accessed as used in the SELECT command. [1] |
0; 1; 15 |
Conditionally Required If and only if it can be captured reliably. |
|
db.query.text |
string | The full syntax of the Redis CLI command. [2] | HMSET myhash field1 'Hello' field2 'World' |
Recommended [3] |
|
network.peer.address |
string | Peer address of the database node where the operation was performed. [4] | 10.1.2.80; /tmp/my.sock |
Recommended |
|
network.peer.port |
int | Peer port number of the network connection. | 65123 |
Recommended if and only if network.peer.address is set. |
[1]: The database index for current connection can be changed by the application dynamically. Instrumentations MAY use the initial database index provided in the connection string and keep track of the currently selected database to capture the db.namespace.
Instrumentations SHOULD NOT set this attribute if capturing it would require additional network calls to Redis.
For commands that switch the database, this SHOULD be set to the target database (even if the command fails).
[2]: For Redis, the value provided for db.query.text 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.query.text.
[3]: SHOULD be collected by default only if there is sanitization that excludes sensitive information.
[4]: If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
Example
In this example, Redis is connected using a unix domain socket and therefore the connection string is left out.
| Key | Value |
|---|---|
| Span name | "HMSET 15" |
db.system |
"redis" |
network.peer.address |
"/tmp/redis.sock" |
network.transport |
"unix" |
db.namespace |
"15" |
db.query.text |
"HMSET myhash field1 'Hello' field2 'World" |
db.operation.name |
"HMSET" |