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