4.1 KiB
Semantic conventions
This document describes which OpenTelemetry Semantic Conventions are implemented by Java autoinstrumentation and which ones are not.
Http Server
| Attribute | Required | Implemented? |
|---|---|---|
http.method |
Y | + |
http.url |
N | + |
http.target |
N | - [1] |
http.host |
N | - [1] |
http.scheme |
N | - [1] |
http.status_code |
Y | + |
http.flavor |
N | + [3] |
http.user_agent |
N | + |
http.request_content_length |
N | - |
http.request_content_length_uncompressed |
N | - |
http.response_content_length |
N | - |
http.response_content_length_uncompressed |
N | - |
http.server_name |
N | - |
http.route |
N | - |
http.client_ip |
N | + |
[1]: As the majority of Java frameworks don't provide a standard way to obtain "The full request
target as passed in a HTTP request line or equivalent.", we don't set http.target semantic
attribute. As either it or http.url is required, we set the latter. This, in turn, makes setting
http.schema and http.host unnecessary duplication. Therefore, we do not set them as well.
[3]: In case of Armeria, return values are SessionProtocol, not values defined by spec.
Http Client
| Attribute | Required | Implemented? |
|---|---|---|
http.method |
Y | + |
http.url |
N | + |
http.target |
N | - [1] |
http.host |
N | - [1] |
http.scheme |
N | - [1] |
http.status_code |
Y | + |
http.flavor |
N | + [3] |
http.user_agent |
N | + |
http.request_content_length |
N | - |
http.request_content_length_uncompressed |
N | - |
http.response_content_length |
N | - |
http.response_content_length_uncompressed |
N | - |
[1]: As the majority of Java frameworks don't provide a standard way to obtain "The full request
target as passed in a HTTP request line or equivalent.", we don't set http.target semantic
attribute. As either it or http.url is required, we set the latter. This, in turn, makes setting
http.schema and http.host unnecessary duplication. Therefore, we do not set them as well.
[3]: In case of Armeria, return values are SessionProtocol, not values defined by spec.
RPC
| Attribute | Required | Implemented? |
|---|---|---|
rpc.system |
Y | + |
rpc.service |
N | + |
rpc.method |
N | + |
Database
| Attribute | Required | Implemented? |
|---|---|---|
db.system |
Y | + |
db.connection_string |
N | only set for Redis, JDBC and MongoDB |
db.user |
N | only set for JDBC |
db.jdbc.driver_classname |
N | - |
db.mssql.instance_name |
N | - |
db.name |
N | only set of JDBC, Mongo, Geode and MongoDB |
db.statement |
N | +, except for ElasticSearch and Memcached, see db.operation |
db.operation |
N | only set for ElasticSearch, Memcached and JDBC |
db.cassandra.keyspace |
Y | + |
db.hbase |
Y | -, HBase is not supported |
db.redis.database_index |
N | only set for Lettuce driver, not for Jedis |
db.mongodb.collection |
Y | - |
Messaging
| Attribute name | Required? | Implemented? |
|---|---|---|
messaging.system |
Y | + |
messaging.destination |
Y | + |
messaging.destination_kind |
Y | + |
messaging.temp_destination |
N | - |
messaging.protocol |
N | - |
messaging.protocol_version |
N | - |
messaging.url |
N | - |
messaging.message_id |
N | only for JMS |
messaging.conversation_id |
N | only for JMS |
messaging.message_payload_size_bytes |
N | only for RabbitMQ and Kafka [1] |
messaging.message_payload_compressed_size_bytes |
N | - |
messaging.operation |
for consumers only | + |
[1]: Kafka consumer instrumentation sets this to the serialized size of the value