Distributed traces are used to capture transactions flowing through a system. Traces are
made of spans, which represent the units of work within a distributed trace.
CICS Transaction Gateway spans
Semantic conventions for CTG request and response spans captured on a CTG server or CTG client.
The span.kind is client for spans captured on a CTG client and is server for spans captured on a CTG server. This applies to both the request and the response.
CTG supports different request types, such as ECI, ESI, or EPI. The call type and response codes have different semantics depending on the request type.
Furthermore, some fields are only populated for some request types.
CTG request fields
Request spans have attributes conforming to the following table.
Attribute
Type
Description
Examples
cics.transaction.user_id
string
experimentalDisplay name: CICS user IDThe user ID of the user who triggered this transaction.
USER1; anon
ctg.request.call_type
long
experimentalDisplay name: CTG request call typeInteger representing the call type of the CTG GatewayRequest. The set of possible values varies per request type. 1
2
ctg.request.commarea_length
long
experimentalDisplay name: CTG request commarea lengthLength of the COMMAREA. Only set when the request type is ECI.
0
ctg.request.extend_mode
long
experimentalDisplay name: CTG request extend modeInteger representing the extended mode of the CTG GatewayRequest. Only set when the request type is ECI. 2
11
ctg.request.flow_type
long
experimentalDisplay name: CTG request flow typeInteger representing the flow type of the CTG GatewayRequest. 3
5
ctg.request.gateway_url
string
experimentalDisplay name: CTG request gateway URLURL of the gateway. Only set on client-side spans.
tcp://1.2.3.4:5678/
ctg.request.object_name
string
experimentalDisplay name: CTG request object nameName of the request object. Only set when the request type is ADMIN.
ctg.request.server_id
string
experimentalDisplay name: CTG request server IDID of the server. Not set for all request types.
IPICTEST
ctg.request.term_id
string
experimentalDisplay name: CTG request terminal IDName of the terminal resource. Only set when the request type is EPI.
CN02
ctg.request.type
string
experimentalDisplay name: CTG request typeType of the CTG GatewayRequest.
BASE
ibm.cics.program
string
resourceexperimentalDisplay name: IBM CICS programThe name of the CICS program.
network.transport has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would typically be expected. Usually, all other network attributes can be left out.
CTG response fields
Response spans have attributes conforming to the following table.
Attribute
Type
Description
Examples
ctg.request.type
string
experimentalDisplay name: CTG request typeType of the CTG GatewayRequest.
BASE
ctg.response.code
long
experimentalDisplay name: CTG response codeCTG response code. The set of possible values varies per request type. 1
Custom service spans represent entry points into a service or entry points to specific components within a larger application. OneAgent Code Modules can create custom service spans via automatic instrumentation rules or directly by OneAgent SDK APIs.
Custom service fields
Attribute
Type
Description
Examples
custom_service.method
string
experimentalDisplay name: Custom service methodThe service method of a custom service. This field only exists if a custom service was created via Dynatrace OneAgent SDK.
startTask; run; authenticate
custom_service.name
string
experimentalDisplay name: Custom service nameThe name of a custom service. This field only exists if a custom service was created via Dynatrace OneAgent SDK.
MyCustomService; AuthenticationComponent
supportability.custom_service.rule_id
uid
experimentalDisplay name: Custom service rule IDThe ID of a custom service configuration rule. This field is only present if a custom service was configured as an automatic instrumentation rule in Dynatrace.
4d76194c11a9426197a9062548f9e66e
Database Client spans
Semantic conventions for database client spans. The span.kind for database client spans is client.
A span representing a database client operation might include the operation itself and the following result processing (for example, fetch from SQL result set, MongoDB cursor operations, etc.).
Besides, several similar db operations might be aggregated into a single span for efficiency.
The aggregation attributes provide information on how many db operations have been aggregated.
The db.result.* attributes represent the details of the result processing.
Database client span fields
Attribute
Type
Description
Examples
db.affected_item_count
long
experimentalDisplay name: Affected item countThe number of items (rows, documents,…) affected.
32
db.collection.name
string
stableDisplay name: Collection nameThe name of a collection (table, container) within the database.
experimentalDisplay name: Dynamodb table namesThe list of tables the request targets.
['Cats', 'Dogs']
db.namespace
string
stableDisplay name: DatabaseThe name of the database, fully qualified within the server address and port.
customers; test.users
db.operation.name
string
stableDisplay name: Db operation nameThe name of the operation or command executed, for example the MongoDB command name, SQL keyword, Redis command name,… 1
experimentalDisplay name: Query parametersThe query parameters used in db.query.text represented as a key and value map. For database systems without named keys, the map key is the string representation of the index starting with 0. Several database requests may get aggregated into a single span. Each entry in the array holds the bind parameters for one database request.Tags: sensitive-spans
stableDisplay name: QueryThe database query being executed. 2
SELECT * FROM wuser_table; SET mykey "WuValue"
db.result.duration_max
duration
experimentalDisplay name: Db duration maxThe maximum duration in nanoseconds used for fetching the result.
345
db.result.duration_min
duration
experimentalDisplay name: Db duration minThe minimum duration in nanoseconds used for fetching the result.
123
db.result.duration_sum
duration
experimentalDisplay name: Db duration sumThe total duration in nanoseconds used for fetching the result.
234
db.result.exception_count
long
experimentalDisplay name: Db exception countThe number of exceptions encountered while fetching the result.
2
db.result.execution_count
long
experimentalDisplay name: Db execution countThe number of operations executed on the result (for example, fetches from SQL result set, MongoDB cursor operations).
12
db.result.fetch_size
long
experimentalDisplay name: Db fetch sizeThe number of items requested in fetching query results.
12
db.result.roundtrip_count
long
experimentalDisplay name: Db roundtrip countThe number of round-trips triggered by fetching the result.
2
db.system
string
experimentalDisplay name: Database systemAn identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
stableDisplay name: Server addressLogical server hostname, matches server FQDN if available, and IP or socket address if FQDN is not known.
example.com
server.port
long
stableDisplay name: Server portLogical server port number.
65123; 80
server.resolved_ips
ipAddress[]
stableDisplay name: Server resolved ipsA list of IP addresses that are the result of DNS resolution of server.address.
[194.232.104.141, 2a01:468:1000:9::140]
1
Depending on the data provided on ingest, this attribute may be derived by e.g., parsing db.query.text. Parsing might fail, or the result might be inaccurate.
2
The value may be sanitized to exclude sensitive information.
db.system has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
adabas
Adabas (Adaptable Database System)
Adabas
amazon-documentdb
Amazon DocumentDB
DocumentDB
aurora-mysql
Amazon Aurora MySQL
Aurora MySQL
aurora-postgresql
Amazon Aurora PostgreSQL
Aurora PostgreSQL
cache
InterSystems Caché
InterSystems Caché
cassandra
Apache Cassandra
Cassandra
clickhouse
ClickHouse
ClickHouse
cloudscape
Cloudscape
Cloudscape
cockroachdb
CockroachDB
CockroachDB
coldfusion
ColdFusion IMQ
ColdFusion IMQ
cosmosdb
Microsoft Azure Cosmos DB
Cosmos DB
couchbase
Couchbase
Couchbase
couchdb
CouchDB
CouchDB
databricks
Databricks Data Platform
Databricks Data Platform
db2
IBM Db2
IBM Db2
derby
Apache Derby
Derby
dl/i
IBM DL/I
IBM DL/I
dynamodb
Amazon DynamoDB
DynamoDB
edb
EnterpriseDB
EnterpriseDB
elasticsearch
Elasticsearch
Elasticsearch
filemaker
FileMaker
FileMaker
firebird
Firebird
Firebird
firstsql
FirstSQL
FirstSQL
geode
Apache Geode
Geode
h2
H2
H2
hanadb
SAP HANA
SAP HANA
hbase
Apache HBase
HBase
hive
Apache Hive
Hive
hsqldb
HyperSQL DataBase
HSQLDB
informix
Informix
Informix
ingres
Ingres
Ingres
instantdb
InstantDB
InstantDB
interbase
InterBase
InterBase
keyspaces-cassandra
Amazon Keyspaces for Apache Cassandra
Keyspaces
mariadb
MariaDB
MariaDB
maxdb
SAP MaxDB
SAP MaxDB
memcached
Memcached
Memcached
mongodb
MongoDB
MongoDB
mssql
Microsoft SQL Server
SQL Server
mssqlcompact
Microsoft SQL Server Compact
SQL Server Compact
mysql
MySQL
MySQL
neo4j
Neo4j
Neo4j
neptune
Amazon Neptune
Neptune
netezza
Netezza
Netezza
opensearch
OpenSearch
OpenSearch
oracle
Oracle Database
Oracle
other_sql
Some other SQL database. Fallback only. See notes.
Other SQL
pervasive
Pervasive PSQL
Pervasive PSQL
phoenix
Apache Phoenix
Apache Phoenix
pointbase
PointBase
PointBase
postgresql
PostgreSQL
PostgreSQL
progress
Progress Database
Progress
redis
Redis
Redis
redshift
Amazon Redshift
Redshift
snowflake
Snowflake Data Platform
Snowflake Data Platform
spanner
Cloud Spanner
Cloud Spanner
sqlite
SQLite
SQLite
sybase
Sybase
Sybase
teradata
Teradata
Teradata
valkey
Valkey
Valkey
vertica
Vertica
Vertica
network.transport has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would typically be expected. Usually, all other network attributes can be left out.
DL/I database attachment fields
Attribute
Type
Description
Examples
db.dli.pcb
string
experimentalDisplay name: DL/I pcb nameThe name of the program communication block associated with this DL/I method.
3; MYPCBNAM
db.dli.segment_name
string
experimentalDisplay name: DL/I segment nameThe name of the last segment that was matched or returned.
PARTROOT
db.dli.segment_level
string
experimentalDisplay name: DL/I segment levelThe hierarchical level of the segment that was matched or returned.
Deprecated. Replaced with frontend_link.
Semantic conventions for a RUM link on Dynatrace spans. A RUM link provides backend to frontend linking information from traces to Dynatrace RUM.
Unlike span links which reference other spans, the RUM link connects a span to a user event and/or user session.
Dynatrace RUM link by tracestate fields
RUM link information for a span-to-user-event and span-to-user-session correlation.
This mechanism works with both OneAgent and OpenTelemetry instrumentation and is established when the Dynatrace RUM initiates a distributed trace using W3C Trace Context headers.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
stableDisplay name: Span IDThe span.id on the user event. This span.id can be used together with the trace.id from the span to find the user event.
f76281848bd8288c
Dynatrace RUM link by server timing and cookie fields
RUM link information for a span-to-user-event and span-to-user-session correlation.
This mechanism requires OneAgent instrumentation and is established through server-timing HTTP response header and session context from HTTP cookies.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
experimentalDisplay name: Is linking candidateIndicates that a user event likely exists that can be correlated to this trace. Use the trace.id from the span to find the user event.
true
dt.rum.session.id
string
stableDisplay name: User session IDA unique identifier for a user session. Use this field to join user events with user sessions in DQL queries.
RUM link information for a span-to-user-event correlation.
This mechanism requires OneAgent instrumentation and is established through server-timing HTTP response header.
Attribute
Type
Description
Examples
dt.rum.is_linking_candidate
boolean
experimentalDisplay name: Is linking candidateIndicates that a user event likely exists that can be correlated to this trace. Use the trace.id from the span to find the user event.
true
Dynatrace RUM link by cookie fields
RUM link information for a span-to-user-session correlation.
This mechanism requires OneAgent instrumentation and is established through session context captured from HTTP cookies.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
Semantic conventions for a frontend-backend tracing link on Dynatrace spans. A frontend link connects a span to a frontend user event and/or user session, enabling tracing from frontend monitoring (such as RUM or Synthetic) to backend services.
Unlike span links, which reference other spans, the frontend link bridges frontend and backend tracing.
Dynatrace frontend link by tracestate fields
Frontend-backend tracing link for span-to-user-event and span-to-user-session correlation.
This mechanism works with both OneAgent and OpenTelemetry instrumentation and is established when the Dynatrace frontend (such as RUM or Synthetic) initiates a distributed trace using W3C Trace Context headers.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
stableDisplay name: Span IDThe span.id on the user event. This span.id can be used together with the trace.id from the span to find the user event.
f76281848bd8288c
Dynatrace frontend link by server timing and cookie fields
Frontend-backend tracing link for span-to-user-event and span-to-user-session correlation.
This mechanism requires OneAgent instrumentation and is established through server-timing HTTP response header and session context from HTTP cookies.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
experimentalDisplay name: Is linking candidateIndicates that a user event likely exists that can be correlated to this trace. Use the trace.id from the span to find the user event.
true
dt.rum.session.id
string
stableDisplay name: User session IDA unique identifier for a user session. Use this field to join user events with user sessions in DQL queries.
Dynatrace frontend link by server timing only fields
Frontend-backend tracing link for span-to-user-event correlation.
This mechanism requires OneAgent instrumentation and is established through server-timing HTTP response header.
Attribute
Type
Description
Examples
dt.rum.is_linking_candidate
boolean
experimentalDisplay name: Is linking candidateIndicates that a user event likely exists that can be correlated to this trace. Use the trace.id from the span to find the user event.
true
Dynatrace frontend link by cookie fields
Frontend-backend tracing link for span-to-user-session correlation.
This mechanism requires OneAgent instrumentation and is established through session context captured from HTTP cookies.
Attribute
Type
Description
Examples
dt.rum.instance.id
string
resourcestableDisplay name: RUM instance IDA persistent pseudonymous identifier representing the same device (browser user agent or mobile app installation) across multiple user sessions. Used to analyze returning users and long-term journeys. Formerly known as "Visitor ID" or "internal user ID." For information on the real user identity, see user.identifier.
The semantic conventions for the Dynatrace span and the fields the user can expect.
Hierarchical fields
The following hierarchical attributes are mandatory.
Attribute
Type
Description
Examples
span.alternate_parent_id
uid
experimentalDisplay name: Alternate parent span IDThe alternative span.id of this span's parent span. If a trace is monitored by more tracing systems (for example, OneAgent and OpenTelemetry), there might be two parent spans. If the two parent spans differ, span.parent_id holds the ID of the parent span originating from same tenant of the span while span.alternate_parent_id holds the other parent span ID. The span.alternate_parent_id is an 8-byte ID and hex-encoded if shown as a string.
f76281848bd8288c
span.id
uid
stableDisplay name: Span IDA unique identifier for a span within a trace. The span.id is an 8-byte ID and hex-encoded if shown as a string.
f76281848bd8288c
span.is_subroutine
boolean
experimentalDisplay name: Is subroutineIf set to true, it indicates that this span is a subroutine of its parent span. The spans represent functions running on the same thread on the same call stack.
span.kind
string
stableDisplay name: Span kindDistinguishes between spans generated in a particular context.
server
span.parent_id
uid
stableDisplay name: Parent span IDThe span.id of this span's parent span. The span.parent_id is an 8-byte ID and hex-encoded if shown as a string.
f76281848bd8288c
trace.id
uid
stableDisplay name: Trace IDA unique identifier for a trace. The trace.id is a 16-byte ID and hex-encoded if shown as a string.
357bf70f3c617cb34584b31bd4616af8
Timing fields
Attributes start_time, end_time and duration are mandatory for all spans.
The attributes in the span.timing namespace are optional and represent measurements provided by the OneAgent.
Attribute
Type
Description
Examples
duration
duration
stableDisplay name: DurationThe difference between start_time and end_time in nanoseconds.
42
end_time
timestamp
stableDisplay name: End timeEnd time of a data point. Value is a UNIX Epoch time in nanoseconds and greater than or equal to the start_time.
1649822520123123165
span.timing.cpu
duration
stableDisplay name: Span CPU timeThe overall CPU time spent executing the span, including the CPU times of child spans that are running on the same thread on the same call stack.
span.timing.cpu_self
duration
stableDisplay name: Span self CPU timeThe CPU time spent exclusively on executing this span, not including the CPU times of any children.
start_time
timestamp
stableDisplay name: Start timeStart time of a data point. Value is a UNIX Epoch time in nanoseconds and less than or equal to the end_time.
1649822520123123123
Aggregation fields
OneAgent might aggregate spans having the same parent span into a single one. The aggregated span contains attributes to indicated that aggregation happened and to allow to reconstruct details.
For aggregated spans the start_time holds the earliest start_time and end_time holds the latest end_time of all aggregated spans. Like for non aggreated spans duration is the difference between start_time and end_time which might differ from aggregation.duration_sum because aggregated spans were executed in parallel or there were gaps between the spans.
Attribute
Type
Description
Examples
aggregation.count
long
stableDisplay name: Aggregation countThe number of spans aggregated into this span. Because this span represents multiple spans, the value is >1.
3
aggregation.duration_max
duration
stableDisplay name: Aggregation duration maximumThe duration in nanoseconds for the longest aggregated span.
482
aggregation.duration_min
duration
stableDisplay name: Aggregation duration minimumThe duration in nanoseconds for the shortest aggregated span.
42
aggregation.duration_samples
duration[]
stableDisplay name: Aggregation duration samplesArray of reservoir sampled span durations of the aggregated spans. The duration samples can be used to estimate a more accurate duration distribution of aggregated spans rather than the average value.
[42, 482, 301]
aggregation.duration_sum
duration
stableDisplay name: Aggregation duration sumThe duration sum in nanoseconds for all aggregated spans.
123
aggregation.exception_count
long
stableDisplay name: Aggregation exception countThe number of aggregated spans that included an exception.
0; 6
aggregation.parallel_execution
boolean
stableDisplay name: Aggregation parallel execution``true indicates that aggregated spans may have been executed in parallel. Therefore, start_time + duration_sum may exceed end_time.
Sampling fields
If the span does not represent a single span, it can have attributes to support extrapolation of its values.
Attribute
Type
Description
Examples
sampling.threshold
long
experimentalThe sampling probability is encoded as sampling.threshold with respect to a 56-bit random integer rv. A span is sampled if rv >= sampling.threshold; the sampling threshold acts as a rejection threshold and can be interpreted as the number of spans discarded out of 2^56. The attribute is only available if the sampling.threshold is not 0, and therefore sampling happened. The relationship between sampling probability and threshold is sampling probability = (2^56-sampling.threshold) * 2^(-56). Hence, sampling.threshold=0 means 100% sampling probability (collect all data), sampling.threshold=2^55 corresponds to a sampling probability of 50%, sampling.threshold=2^54 corresponds to a sampling probability of 75%.
36028797018963968
supportability.alr_sampling_ratio
long
experimentalDisplay name: ALR sampling ratioThe denominator of the sampling ratio of the Dynatrace cluster, the attribute is only set if Adaptive Load Redution (ALR) is active on the Dynatrace cluster. A numerator is not specified, as it's always 1. If, for example, the Dynatrace cluster samples with a probability of 1/8 (12,5%), the value of supportability.alr_sampling_ratio would be 8 and the numerator is 1.
8
supportability.atm_sampling_ratio
long
experimentalDisplay name: ATM sampling ratioThe denominator of the sampling ratio of an Adaptive Traffic Management (ATM) aware sampler. The attribute is always present if an ATM-aware sampler is active (this applies, for example, to Dynatrace OneAgent). A numerator is not specified, as it is always 1. If, for example, Dynatrace OneAgent samples with a probability of 1/16 (6,25%), the value of supportability.atm_sampling_ratio would be 16 and the numerator is 1.
16
trace.capture.reasons
string[]
experimentalDisplay name: Capture reasonsExplains why this trace was captured, multiple reasons can apply simultaneously. Note: The sampling approach ('atm' or 'fixed') is always placed at the first position in the array. These two values are mutually exclusive, though 'fixed' may appear with other capture triggers. Values: 'atm' (Dynatrace's intelligent sampling automatically adjusted trace capture based on traffic volume and system load), 'fixed' (trace captured due to configured percentage rules - either global settings or specific endpoint rules), 'custom' (trace captured because of custom correlation headers propagated between services or systems), 'mainframe' (trace originated from or includes IBM mainframe/z/OS components), 'serverless' (trace captured from serverless functions like AWS Lambda, Azure Functions, or similar platforms), 'rum' (trace initiated by user interactions in web browsers or mobile apps monitored by Dynatrace RUM agents).
Currently sampling can happen two stages in the data processing. Independend where sampling happens the span has the sampling.threshold for calculation of the combined (effective) sample rate. Supportability attributes help the understand the sampling on the different stages.
OneAgent: if the OneAgent has enabled adaptive traffic management (ATM), the agent samples PurePaths and the attribute supportability.atm_sampling_ratio is added to all effected spans.
Dynatrace Cluster: if the Dynatrace cluster is overloaded, it starts adaptive load reduction (ALR) and samples PurePaths. The attribute supportability.alr_sampling_ratio is added to all effected spans.
If for example OneAgents samples with a probability of 25% the spans would contain the attributes sampling.threshold=54043195528445952 and supportability.atm_sampling_ratio=4.
Details about adaptive traffic management for distributed tracing can be found in the documentation.
Code fields
Attribute
Type
Description
Examples
code.function
string
experimentalDisplay name: Code functionThe method or function name, or equivalent (usually the rightmost part of the code unit's name). Represents the name of the function that is represented by this span.
serveRequest
code.namespace
string
experimentalDisplay name: Code namespaceThe namespace within which code.function is defined. Usually, the qualified class or module name, such that code.namespace + some separator + code.function forms a unique identifier for the code unit.
com.example.MyHttpService
code.filepath
string
experimentalDisplay name: Code file pathThe source code file name that identifies the code unit as uniquely as possible.
experimentalDisplay name: Line numberThe line number within the source code file.
1337
code.invoked.function
string
experimentalDisplay name: Invoked functionLike code.function, only it represents the function that was active when a span has been started. Typically, it's the function that has been instrumented. The spans duration does not reflect the duration of this function execution. It should only be set if it differs from code.function.
invoke
code.invoked.namespace
string
experimentalDisplay name: Invoked namespaceLike code.namespace, only it represents the namespace of the function that was active when a span has been started. Typically, it's the function that has been instrumented. It should only be set if it differs from code.namespace.
com.sun.xml.ws.server.InvokerTube$2
code.invoked.filepath
string
experimentalDisplay name: Invoked file pathLike code.filepath, only it represents the file path of the function that was active when a span has been started. Typically, it is the function that has been instrumented. It should only be set if it differs from code.filepath.
experimentalDisplay name: Call stackThe call stack of the code.function. The call stack starts with the code.function, and the stack frames are separated by a line feed.
Span events have their own semantics defined here.
Attribute
Type
Description
Examples
span.events
record[]
stableDisplay name: Span eventsA collection of events. An event is an optional time-stamped annotation of the span and consists of a name and key-value pairs.
supportability.dropped_events_count
long
experimentalDisplay name: Dropped events countThe number of span events that were discarded on the source.
1
Span events have their own semantics defined here.
Exception fields
If the span was exited by an exception or contains other exception events, the following fields are available to provide a reference to the correct exception in the list of the span.events.
Attribute
Type
Description
Examples
span.exit_by_exception_id
uid
stableDisplay name: Exit exception IDThe exception.id of the exception the its span.events with the current span exited. The referenced exception has set the attribute exception.escaped to true.
span.is_exit_by_exception
boolean
stableDisplay name: Is exit by exceptionSet to true if an exception exited the span. If set to false, the span has exception events, but none exited the span.
Link fields
Span links have their own semantics defined here.
Attribute
Type
Description
Examples
span.links
record[]
stableDisplay name: Span linksA collection of links. A link is a reference from this span to a whole trace or a span in the same or different trace.
supportability.dropped_links_count
long
experimentalDisplay name: Dropped links countThe number of span links that were discarded on the source.
1
Frontend link fields
A frontend-backend tracing link has its own semantics.
Attribute
Type
Description
Examples
frontend.link
record
experimentalDisplay name: Frontend linkA frontend-backend tracing link that connects a span to a frontend user event and/or user session. Unlike span links, which reference other spans, this links tracing data to frontend monitoring (such as RUM or Synthetic).
RUM link fields
Deprecated. Replaced with span.frontend_link. A RUM link has its own semantics.
Attribute
Type
Description
Examples
rum_link
record
**deprecatedReplaced with frontend.link.**Display name: RUM linkA RUM link provides backend to frontend linking information from traces to Dynatrace RUM. Unlike span links which reference other spans, the RUM link connects a span to a user event and/or user session.
Failure detection fields
Fields that can be expected for a failure detection on a Dynatrace span. Failure detection will be applied to spans that represent requests on endpoints and incoming Istio services mesh proxies. A request is considered failed if at least one failure reason is detected and no success forcing rule matches. The combined result (failure or success) will be stored in the attribute request.is_failed. To modify failure detection behavior, modify its configuration.
Attribute
Type
Description
Examples
dt.failure_detection.general_parameters_id
uid
experimentalDisplay name: Failure detection general parameters IDThe id of the failure detection general parameters (failure detection v1) that were applied to that span (uid128).
4d76194c11a9426197a9062548f9e66f
dt.failure_detection.global_parameters_id
uid
experimentalDisplay name: Failure detection global parameters IDThe id of the global failure detection parameters (failure detection v1) that were applied to that span (uid128). This is always used in conjunction with the dt.failure_detection.global_rule_id.
4d76194c11a9426197a9062548f9e66c
dt.failure_detection.global_rule_id
uid
experimentalDisplay name: Failure detection global rule IDThe id of the global failure detection rule (failure detection v1) that was applied to that span (uid128). This is always used in conjunction with the dt.failure_detection.global_parameters_id.
4d76194c11a9426197a9062548f9e66b
dt.failure_detection.http_parameters_id
uid
experimentalDisplay name: Failure detection HTTP parameters IDThe id of the failure detection HTTP parameters (failure detection v1) that were applied to that span (uid128).
4d76194c11a9426197a9062548f9e66a
dt.failure_detection.results
record[]
experimentalDisplay name: Failure detection resultsA collection of individual failure detection reasons and verdicts for each applied matching rule. If no entries exist, no rules matched, and the attribute does not exist.
dt.failure_detection.ruleset_id
uid
experimentalDisplay name: Failure detection ruleset IDThe id of the failure detection rule set (failure detection v2) that was applied to that span (uid128).
4d76194c11a9426197a9062548f9e66e
dt.failure_detection.verdict
string
experimentalDisplay name: Failure detection verdictThe final failure detection verdict based on the results in dt.failure_detection.results.
failure
dt.failure_detection.verdict MUST be one of the following:
Value
Description
Display name
failure
There is at least one result with verdict failure and no result with verdict success.
Failure
success
There is at least one result with verdict success or no result at all.
Success
Failure detection has its own semantics defined here.
Server fields
These attributes may be used to describe the client and server in a connection-based network interaction where there is one side (the client) that initiates the connection.
This covers all TCP network interactions since TCP is connection-based and one side initiates the connection (an exception is made for peer-to-peer communication over TCP where the "user-facing" surface of the protocol / API does not expose a clear notion of client and server).
This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.
In an ideal situation, not accounting for proxies, multiple IP addresses or host names, the server.* attributes are the same on the client and server span.
Attribute
Type
Description
Examples
server.address
string
stableDisplay name: Server addressLogical server hostname, matches server FQDN if available, and IP or socket address if FQDN is not known.
example.com
server.port
long
stableDisplay name: Server portLogical server port number.
65123; 80
server.resolved_ips
ipAddress[]
stableDisplay name: Server resolved ipsA list of IP addresses that are the result of DNS resolution of server.address.
[194.232.104.141, 2a01:468:1000:9::140]
server.address
For IP-based communication, the name should be a DNS host name of the service. On client side it matches remote service name, on server side, it represents local service name as seen externally on clients.
When connecting to a URL https://example.com/foo, server.address matches "example.com" on both client and server side.
On client side, it's usually passed in form of a URL, connection string, host name, etc. Sometimes host name is only available as a string which may contain DNS name or IP address.
If network.transport is pipe, the absolute path to the file representing it is used as server.address.
For Unix domain socket, server.address attribute represents the remote endpoint address on client side and local endpoint address on server side.
Client fields
Attribute
Type
Description
Examples
client.address
string
experimentalDisplay name: Client addressClient address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
client.example.com; 10.1.2.80; [local]
client.app.name
string
experimentalDisplay name: Client app nameThe name of the client application used to perform the request.
MS Outlook
client.ip
ipAddress
experimentalDisplay name: Client IP addressThe IP address of the client that makes the request. This can be IPv4 or IPv6.Tags: sensitive-spanssensitive-user-events
194.232.104.141; 2a01:468:1000:9::140
client.ip.is_public
boolean
experimentalDisplay name: Client IP is publicIndicates whether IP is a public IP.
true
client.isp
string
experimentalDisplay name: Client ISP nameThe name of the Internet Service Provider (ISP) associated with the client's IP address.
Internet Service Provider Name
client.port
long
stableDisplay name: Client portClient port number.
65123; 80
Supportability fields
Supportability attributes help to understand the characteristics of the span.
Attribute
Type
Description
Examples
supportability.dropped_attributes_count
long
experimentalDisplay name: Dropped attributes countThe number of attributes that were discarded on the source. Attributes can be discarded because their keys are too long or because there are too many attributes.
1
supportability.non_persisted_attribute_keys
string[]
experimentalDisplay name: Non-persisted attribute keysA string array of attribute keys that were not stored as they were not allow-listed or were removed during the pipeline steps.
['"my_span_attribute", "db.name"']
trace.alternate_id
uid
experimentalDisplay name: Alternate trace IDThe preserved trace ID when OneAgent and other tracing systems monitor the same process and the trace ID from the other tracing system was replaced by the OneAgent trace ID. The trace.alternate_id is a 16-byte ID and hex-encoded if shown as a string.
357bf70f3c617cb34584b31bd4616af8
trace.state
string
experimentalDisplay name: Trace stateThe trace state in the w3c-trace-context format.
Transactions provide a unified semantic model across all service transaction types. A transaction represents a discrete unit of inbound work within a service - an endpoint request, message processing, or FaaS invocation. A single transaction root span can have multiple type attributes set simultaneously. For example, an HTTP-triggered Lambda has both transaction.is_faas_invocation = true and transaction.is_endpoint_request = true.
Attribute
Type
Description
Examples
dt.endpoint_detection.rule_id
uid
experimentalDisplay name: Endpoint detection rule IDThe ID of the endpoint detection rule that was applied to that span.
4d76194c11a9426197a9062548f9e66e
endpoint.name
string
stableDisplay name: Endpoint nameThe endpoint name is derived from endpoint detection rules and uniquely identifies one endpoint of a particular service. Endpoint names are usually technology-specific and should be defined by attributes with low cardinality, like http.route or rpc.method. Endpoints are exclusively detected on request root spans.
GET /; PUT /users/:userID?; GET /productpage; Reviews.GetReviews
request.is_failed
boolean
**deprecatedReplaced by transaction.is_failed in combination with transaction.is_endpoint_request.**Indicates that the request is considered failed according to the failure detection rules. Only present on the request root span.
request.is_root_span
boolean
**deprecatedReplaced by transaction.is_root_span in combination with transaction.is_endpoint_request.**Marks the root of a request. It's the first span and starts the request within a service.
transaction.is_endpoint_request
boolean
experimentalIndicates that this transaction is an endpoint request. Set by the endpoint detection ruleset.
transaction.is_faas_invocation
boolean
experimentalIndicates that this transaction is a FaaS invocation. Set when faas.trigger exists and span.kind is server or consumer.
transaction.is_failed
boolean
experimentalIndicates that the transaction is considered failed according to the failure detection rules. Only present on the transaction root span.
transaction.is_message_processing
boolean
experimentalIndicates that this transaction is a message processing transaction. Set when messaging.operation.type == "PROCESS".
transaction.is_root_span
boolean
experimentalMarks the root span of a transaction. A span becomes a transaction root if at least one transaction type attribute is set.
Service mesh fields
Service mesh spans represent requests proxied through a service mesh layer (e.g., Istio Envoy).
They do not represent service transactions (transaction.is_root_span is not set).
Attribute
Type
Description
Examples
transaction.service_mesh.is_failed
boolean
experimentalIndicates that the service mesh request is considered failed according to the failure detection rules. Only present on the service mesh root span.
transaction.service_mesh.is_root_span
boolean
experimentalMarks the root span of a service mesh request. Set by the service mesh detection ruleset.
Request fields
Request attributes allow you to enrich spans collected by OneAgents with deep-insight data which is not captured on trace data by default.
They are modelled as:
Captured attributes, which represent the raw value as reported by the OneAgent.
Request attributes, which represent the normalized value along a complete request.
The names of request and captured attributes are composed of the prefixes "captured_attribute" and "request_attribute" and the name given in the configuration by the user.
Attribute
Type
Description
Examples
captured_attribute.__attribute_name__
array
stableDisplay name: Captured attributeContains the span scoped raw values that were captured under the name __attribute_name__ defined by the request attribute configuration. The values are mapped as an array according to the type of the captured attributes, so either boolean, double, long, or string. If the captured attributes have mixed types (e.g. long and string, or double and long, etc.), all attributes are converted to string and stored as string array.
stableDisplay name: Request attributeContains the request scoped reconciled values of the attribute named __attribute_name__ defined by the request attribute configuration. The data type of the value depends on the request attribute definition.Tags: sensitive-spans
The calculated sizes of a span in bytes. The dt.ingest.size is calculated when the span is ingested while the dt.retain.size is calculated before the span gets stored.
Attribute
Type
Description
Examples
dt.ingest.size
long
stableDisplay name: Ingest sizeThe size of the ingested data point in bytes.
2005
dt.retain.size
long
stableDisplay name: Retain sizeThe size of the retained data point in bytes.
2005
Span status fields
A span contains a status consisting of a code and an optional descriptive message. The status is especially relevant if there is a known error in the application code, such as an exception in which case the span status can be set to error. The span status is only present if it is explicitly set to error or ok.
Attribute
Type
Description
Examples
span.status_code
string
stableDisplay name: Span statusDefines the status of a span, predominantly used to indicate a processing error. This field is absent if the reported span status is unset.
error
span.status_message
string
experimentalDisplay name: Span status messageAn optional text that can provide a descriptive error message in case the span.status_code is error.
Connection closed before message completed; Error sending request for url
Error status reasons
The following reasons cause the span.status_code to be error:
If the span was exited by an exception, i.e. the attribute span.is_exit_by_exception is set to true.
HTTP spans:
General: for http.response.status_code values in the 5xx range.
If span.kind is client: for http.response.status_code values in the 4xx range.
gRPC spans:
If span.kind is client: for all rpc.grpc.status_code values except OK (0).
If span.kind is server: for rpc.grpc.status_code values UNKNOWN (2), DEADLINE_EXCEEDED (4), UNIMPLEMENTED (12), INTERNAL (13), UNAVAILABLE (14), DATA_LOSS (15).
Additional attributes
Beside the attributes listed above, arbitrary other attributes are allowed on a span.
Dynatrace span events
Semantic conventions for span events on Dynatrace spans.
Common fields
In general, a span event does not need to follow specific semantics, but typically, span events have the following common attributes.
Attribute
Type
Description
Examples
span_event.name
string
stableDisplay name: Span event nameSome span events have a defined semantics based on the name of the span event.
exception
supportability.dropped_attributes_count
long
experimentalDisplay name: Dropped attributes countThe number of attributes that were discarded on the source. Attributes can be discarded because their keys are too long or because there are too many attributes.
1
supportability.non_persisted_attribute_keys
string[]
experimentalDisplay name: Non-persisted attribute keysA string array of attribute keys that were not stored as they were not allow-listed or were removed during the pipeline steps.
['"my_span_attribute", "db.name"']
timestamp
timestamp
stableDisplay name: TimestampThe time (UNIX Epoch time in nanoseconds) when the event originated, typically when the source created it. If no original timestamp is available, it will be populated at ingest time and required for all events. In the case of a correlated event (for example, ITIL events), this time could be different from the event.start time, as this time represents the actual timestamp when the "update" for the event was created.
1649822520123123123
Besides the common attributes, any arbitrary attributes are allowed for span events.
Exception fields
If exceptions happen and are captured during a span, they're available as span events. Exceptions events have the span_event.name set to exception. Besides the following exception event-specific attributes, all semantics of the common section apply.
Attribute
Type
Description
Examples
exception.caused_by_id
uid
stableDisplay name: Exception caused by IDThe exception.id of the exception the current exception was caused by.
exception.escaped
boolean
stableDisplay name: Exception escaped``true indicates that the exception was recorded at a point where it is known that the exception escaped the scope of the span.
exception.id
uid
stableDisplay name: Exception IDThe identifier of an exception. It should be unique within a list of exceptions of a span. The identifier is used to reference the exception.
exception.is_caused_by_root
boolean
stableDisplay name: Exception is caused by rootIs set to true if the exception is the first exception caused by the chain.
exception.message
string
stableDisplay name: Exception messageA message that describes the exception.
Division by zero
exception.stack_trace
string
experimentalDisplay name: Exception stack traceThe stack trace of the exception. The format depends on the technology and source. While OneAgent formats stack traces to unify them across technologies, stack traces from an OpenTelemetry source are in the format they were sent to Dynatrace.
stableDisplay name: Exception typeThe type of the exception, for example, its fully-qualified class name.
java.net.ConnectException; OSError
span_event.name
string
stableDisplay name: Span event nameIs set to exception for exception events.
exception
Feature flag evaluation fields
A flag evaluation SHOULD be recorded as an event on the span during which it occurred. Feature flag events have the span_event.name set to feature_flag.evaluation.
Attribute
Type
Description
Examples
feature_flag.context.id
string
experimentalDisplay name: Feature flag context IDThe unique identifier for the flag evaluation context. For example, the targeting key.
5157782b-2203-4c80-a857-dbbd5e7761db
feature_flag.key
string
experimentalDisplay name: Feature flag keyThe unique identifier of the feature flag.
logo-color
feature_flag.provider.name
string
experimentalDisplay name: Feature flag provider nameThe name of the service provider that performs the flag evaluation.
Flag Manager
feature_flag.result.reason
string
experimentalDisplay name: Feature flag result reasonThe reason code, which shows how a feature flag value was determined.
static; targeting_match; error; default
feature_flag.result.variant
string
experimentalDisplay name: Feature flag result variantA semantic identifier for an evaluated flag value. 1
red; true; on
feature_flag.set.id
string
experimentalDisplay name: Feature flag set IDThe identifier of the flag set to that the feature flag belongs.
proj-1; ab98sgs; service1/dev
feature_flag.version
string
experimentalDisplay name: Feature flag versionThe version of the ruleset used during the evaluation. This can be any stable value that uniquely identifies the ruleset.
1; 01ABCDEF
span_event.name
string
stableDisplay name: Span event nameIs set to feature_flag.evaluation for feature flag events.
feature_flag.evaluation
1
A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
provide additional context for understanding the meaning behind a value.
For example, the variant red maybe be used for the value #c05543.
Business event fields
If a span is related to a business event, the IDs of the business events are available as span events. The span events have the span_event.name set to bizevent.
Attribute
Type
Description
Examples
event.id
string
stableDisplay name: Event IDUnique identifier string of an event; is stable across multiple refreshes and updates.
5547782627070661074_1647601320000
span_event.name
string
stableDisplay name: Span event nameIs set to bizevent for bizevent events.
bizevent
Dynatrace span links
Semantic conventions for well known span links.
By Span and Trace Id fields
A span link by span.id and trace.id references to a target span on a different trace.
Attribute
Type
Description
Examples
span.id
uid
stableDisplay name: Span IDA unique identifier for a span within a trace. The span.id is an 8-byte ID and hex-encoded if shown as a string.
f76281848bd8288c
supportability.dropped_attributes_count
long
experimentalDisplay name: Dropped attributes countThe number of attributes that were discarded on the source. Attributes can be discarded because their keys are too long or because there are too many attributes.
1
supportability.non_persisted_attribute_keys
string[]
experimentalDisplay name: Non-persisted attribute keysA string array of attribute keys that were not stored as they were not allow-listed or were removed during the pipeline steps.
['"my_span_attribute", "db.name"']
trace.alternate_id
uid
experimentalDisplay name: Alternate trace IDThe preserved trace ID when OneAgent and other tracing systems monitor the same process and the trace ID from the other tracing system was replaced by the OneAgent trace ID. The trace.alternate_id is a 16-byte ID and hex-encoded if shown as a string.
357bf70f3c617cb34584b31bd4616af8
trace.id
uid
stableDisplay name: Trace IDA unique identifier for a trace. The trace.id is a 16-byte ID and hex-encoded if shown as a string.
357bf70f3c617cb34584b31bd4616af8
trace.state
string
experimentalDisplay name: Trace stateThe trace state in the w3c-trace-context format.
Besides the attributes listed above, arbitrary other attributes are allowed on a generic span link.
By custom link Id fields
Besides the attributes listed above, arbitrary other attributes are allowed on a generic span link. A span link by dt.tracing.custom_link.id references another span with a span link to the same dt.tracing.custom_link.id. This span link is used for technologies where full context propagation with span ID and trace ID is not possible, and only a limited amount of information can be propagated between tiers.
The dt.tracing.link.direction defines the hierarchy between two spans having span links with the same dt.tracing.custom_link.id.
Attribute
Type
Description
Examples
dt.tracing.custom_link.id
uid
experimentalDisplay name: Custom link IDThe custom link ID to identify spans calling each other. The ID is derived from the custom link bytes.
736bd2684696c4a8
dt.tracing.custom_link.original_bytes
binary
experimentalDisplay name: Custom link original bytesThe original binary data of the custom link.
experimentalDisplay name: Custom link typeThe type of the custom link defines if a mapping of the dt.tracing.custom_link.original_bytes to the dt.tracing.custom_link.transformed_bytes was applied.
generic
dt.tracing.link.direction
string
experimentalDisplay name: Link directionThe direction of the span link to define the correct order between spans.
outgoing
dt.tracing.link.is_sync
boolean
experimentalDisplay name: Link is synchronous``true indicates that the caller waits on the response. Only available on span links with dt.tracing.link.direction set to outgoing.
timestamp
timestamp
stableDisplay name: TimestampThe time (UNIX Epoch time in nanoseconds) when the span was propagated. Only available on span links with dt.tracing.link.direction set to outgoing.
1649822520123123123
By Dynatrace link Id fields
A Dynatrace link provides additional details regarding the parent and child timing on top of span.parent_id.
This data is optional and not provided by all span data sources.
Attribute
Type
Description
Examples
dt.tracing.link.direction
string
experimentalDisplay name: Link directionThe direction of the span link to define the correct order between spans.
outgoing
dt.tracing.link.id
uid
experimentalDisplay name: Link IDUnique identifier for a Dynatrace link.
dt.tracing.link.is_sync
boolean
experimentalDisplay name: Link is synchronous``true indicates that the caller waits on the response. Only available on span links with dt.tracing.link.direction set to outgoing.
timestamp
timestamp
stableDisplay name: TimestampThe time (UNIX Epoch time in nanoseconds) when the span was propagated. Only available on span links with dt.tracing.link.direction set to outgoing.
1649822520123123123
By foreign link fields
A span link by dt.tracing.foreign_link refers to an upstream transaction. This could be a cross-environment link or a cross-product link to a distributed trace in the legacy AppMon product. Depending on whether the link information was received in binary or text, either dt.tracing.foreign_link.bytes or dt.tracing.foreign_link.text will be set, respectively.
Attribute
Type
Description
Examples
dt.tracing.foreign_link.bytes
binary
experimentalDisplay name: Foreign link bytesAn incoming foreign link (cross-environment or cross-product).
A span link by dt.tracing.response.headers refers to a downstream transaction. This could be a cross-environment link.
Attribute
Type
Description
Examples
dt.tracing.response.headers
record
experimentalDisplay name: Response headersA collection of key-value pairs containing received response headers related to tracing from an outgoing call. There may be multiple values for each header. Used for cross-environment linking.
Semantic conventions for ESB (Enterprise Service Bus) spans. An ESB span holds information about the realm in which the span is produced. This metadata includes, for example, the workflow in which the span is placed and the application or library to which the workflow belongs.
ESB spans fields
The workflow name is mandatory information and contributes the most to identifying where this span comes from.
The application and library provide a high-level view of which deployment the span belongs to.
It's also worth mentioning that application and library are typically seen as mutually exclusive, although this is not enforced in any way.
Attribute
Type
Description
Examples
esb.application.name
string
resourceexperimentalDisplay name: ESB application nameThe name of the application that owns the current workflow.
myBusinessApp; YourServiceApp; any_work
esb.library.name
string
resourceexperimentalDisplay name: ESB library nameThe name of the library that owns the current workflow.
myWebServicesLib; YourMessagingLibrary; any_tools
esb.vendor
string
resourceexperimentalDisplay name: ESB vendorThe name of vendor of the ESB technology of the current workflow.
ibm; tibco
esb.workflow.is_subprocess
boolean
experimentalDefines whether the provided workflow is a subprocess or not.
false
esb.workflow.name
string
resourceexperimentalDisplay name: ESB workflow nameThe label of the current workflow.
myMessageFlow; YourBusinessWorkflow; any_flow
Failure detection result
Record containing fields that can be expected for a failure detection result. These results are part (as a record array) of a set of fields used by the failure detection feature and are referenced there via failure_detection.results.
This record relates to failure detection v1 and v2.
Failure detection v1 will produce only one result in the array.
Failure detection v2 might produce multiple failure reasons. Each matching rule of a failure detection rule set will produce a single result.
Failure detection result aggregate fields
Attribute
Type
Description
Examples
custom_rule_name
string
experimentalName of the custom rule that caused this result. Uniquely identifies the rule within a failure detection v2 rule set. Related to the custom_rule reason.
Fail on my.failure.attribute==failed
exception_ids
uid[]
experimentalIDs of the exceptions that caused this rule result (more on exceptions).
[123423523456, 523463467234]
reason
string
experimentalAll possible failure detection reasons that caused a verdict.
exception
request_attribute_name
string
experimentalName of the request attribute that caused this result. Related to a custom error rule in a failure detection v1 configuration and the custom_error_rule reason.
my special method count RA
span_ids_caused_verdict
uid[]
experimentalContains the span ID that caused the verdict when a different span (not the current one) produced the failure detection verdict. Applies only to failure detection v1. At most it contains one ID.
[123423523456]
verdict
string
experimentalAll possible failure detection verdicts.
failure
reason MUST be one of the following:
Value
Description
custom_error_rule
Verdict is caused by a custom error rule (request attribute). Applicable in failure detection v1. This reason always comes together with the request_attribute_name field.
custom_rule
Verdict is caused by a custom rule. Applicable in failure detection v2. This reason always comes together with the custom_rule_name field.
exception
Verdict is caused by an exception. Applicable in failure detection v1 and v2.
grpc_code
Verdict is caused by the GRPC response code. Applicable in failure detection v2.
http_code
Verdict is caused by the HTTP response code. Applicable in failure detection v1 and v2.
span_status
Verdict is caused by the span status attribute. Applicable in failure detection v1 and v2.
verdict MUST be one of the following:
Value
Description
failure
Indicates that the rule failed.
success
Indicates that the rule was successful.
Function as a Service (FaaS)
Fields that can be expected from serverless functions or Function as a Service (FaaS) on various cloud platforms.
There are general attributes and attributes specific to incoming FaaS invocations (server side) and outgoing invocations (FaaS function as client calling out).
FaaS general attributes
Attribute
Type
Description
Examples
aws.account.id
string
resourcestableDisplay name: AWS account IDThe 12-digit number, such as 123456789012, that uniquely identifies an AWS account.Tags: permissionprimary-field
123456789012
aws.arn
string
resourcestableDisplay name: AWS ARNAmazon Resource Name (ARN).
resourceexperimentalDisplay name: Azure site nameGlobally unique deployment information about an Azure function.
dt-function-scripted
azure.subscription
string
resourcestableDisplay name: Azure subscriptionAn Azure subscription is a logical container used to provision resources in Azure.Tags: permissionprimary-field
27e9b03f-04d2-2b69-b327-32f433f7ed21
cloud.account.id
string
resourcedeprecatedDisplay name: Cloud account IDDeprecated in favor of cloud specific fields, such as aws.account.id, azure.subscription, gcp.project.id, etc.
111111111111; opentelemetry
cloud.platform
string
resourcedeprecatedDisplay name: Cloud platformDeprecated, no replacement available. 1
alibaba_cloud_ecs
cloud.provider
string
resourcestableDisplay name: Cloud providerName of the cloud provider.
alibaba_cloud
cloud.region
string
resourcedeprecatedDisplay name: Cloud regionDeprecated in favor of cloud specific fields, such as aws.region, azure.location, gcp.region, etc.
us-east-1
cloud.resource_id
string
resourcedeprecatedDisplay name: Cloud resource IDDeprecated in favor of cloud specific fields, such as aws.arn, azure.resource.id, gcp.resource.name, etc.
The prefix of the service matches the one specified in cloud.provider.
2
This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback
function (which may be stored in the code.namespace/code.function span attributes).
3
Value of the field depends on a cloud provider. This field is not set for Azure.
FaaS incoming invocations
Incoming FaaS invocations as they are reported by the FaaS instance itself. For incoming FaaS spans, the span.kind is either server or consumer.
Attribute
Type
Description
Examples
aws.request_id
string
experimentalDisplay name: AWS request IDThe AWS request ID (e.g., value of x-amzn-requestid, x-amzn-request-id, or x-amz-request-id HTTP header, awsRequestId field in AWS lambda context object).
0e7bc729-a468-57e8-8143-98f2eec5c925
aws.xray.trace_id
string
experimentalDisplay name: X-Ray trace IDContains the AWS X-Ray trace id (e.g., value of the x-amzn-trace-id HTTP header, _X_AMZN_TRACE_ID environment variable on AWS lambda)
experimentalDisplay name: FaaS cold startA boolean that is true if the serverless function is executed for the first time (aka cold-start).
faas.document.collection
string
experimentalDisplay name: FaaS document collectionThe table/collection name on which the operation faas.document.operation was executed. 1
my-coll-name
faas.document.count
long
experimentalThe number of documents affected by the operation that triggered the function invocation. 2
1; 37
faas.document.name
string
experimentalDisplay name: FaaS document nameThe identifier for the specific item that changed after executing the operation above. 3
my-file.jpg; 63eeb6e7d418cd98afb1c1d7
faas.document.namespace
string
experimentalThe namespace of the collection/document (for example, database name,…) within which the operation was performed. 4
my-database; products
faas.document.operation
string
experimentalDisplay name: FaaS document operationRelevant only for "datasource" trigger. The operation type which triggered the function invocation.
delete
faas.document.time
string
experimentalDisplay name: FaaS document timeThe UTC ISO-8601 timestamp of the operation above. 5
2020-03-08T00:30:12.456Z
faas.event.__key__
string
stableDisplay name: FaaS event attributeFaaS event attribute, the __key__ attribute in a FaaS event represents the precise attribute name as received in the event. For example, it might be "faas.event.StackId" for the "StackId" attribute in an AWS CloudFormation event or "faas.event.IdentityPoolId" for the "IdentityPoolId" attribute in an AWS Cognito event. The value of this attribute is identical to the value received in the event.
experimentalDisplay name: FaaS event nameThe API action that triggered the FaaS event. 6
ObjectCreated:Put (aws:s3); INSERT (aws:dynamodb)
faas.event_source
string
experimentalDisplay name: FaaS event sourceThe cloud service that originated the event.
aws:cloudwatch; aws:cloudformation
faas.timer.cron
string
experimentalThe schedule expression that configures the timer trigger for the function invocation (for faas.trigger=timer).
0 */5 * * * *
faas.timer.time
timestamp
experimentalDisplay name: FaaS timer timeThe timestamp when the timer expired and triggered the function execution (for faas.trigger=timer).
1649822520123123123
faas.trigger
string
experimentalDisplay name: FaaS triggerType of the trigger which caused this function invocation.
datasource
1
Relevant only for faas.trigger=datasource trigger
2
Relevant only for faas.trigger=datasource trigger.
3
Relevant only for faas.trigger=datasource trigger
4
Relevant only for faas.trigger=datasource trigger.
5
Relevant only for faas.trigger=datasource trigger
6
The value of this attribute is specific to the service that generated the event.
FaaS outgoing invocations
Outgoing FaaS invocations as they are reported by a client calling a FaaS instance. For outgoing FaaS spans, the span.kind is either client or producer.
Attribute
Type
Description
Examples
aws.request_id
string
experimentalDisplay name: AWS request IDThe AWS request ID (e.g., value of x-amzn-requestid, x-amzn-request-id, or x-amz-request-id HTTP header, awsRequestId field in AWS lambda context object).
0e7bc729-a468-57e8-8143-98f2eec5c925
aws.xray.trace_id
string
experimentalDisplay name: X-Ray trace IDContains the AWS X-Ray trace id (e.g., value of the x-amzn-trace-id HTTP header, _X_AMZN_TRACE_ID environment variable on AWS lambda)
experimentalDisplay name: FaaS invoked nameThe name of the invoked function.
my-function
faas.invoked_provider
string
experimentalDisplay name: FaaS invoked providerThe cloud provider of the invoked function. Will be equal to the invoked function's cloud.provider resource attribute.
alibaba_cloud
faas.invoked_region
string
experimentalDisplay name: FaaS invoked regionThe cloud region of the invoked function. 1
eu-central-1
1
Will be equal to the invoked function's cloud.region resource attribute.
Generative AI (GenAI) spans
Semantic convention for spans related with GenAI applications.
Generative AI (GenAI) span fields
Attribute
Type
Description
Examples
gen_ai.agent.name
string
experimentalDisplay name: Agent nameHuman-readable name of the GenAI agent provided by the application.
Math Tutor; Fiction Writer
gen_ai.embeddings.dimension.count
long
experimentalDisplay name: Embeddings dimension countThe number of dimensions the resulting output embeddings should have.
512; 1024
gen_ai.guardrail.id
string
experimentalDisplay name: Guardrail IDIdentifier of the guardrail that has been activated for the request.
sensitive_data_guardrail
gen_ai.guardrail.input.content
record[]
experimentalDisplay name: Guardrail input contentContent categories that triggered the guardrails on prompts.
experimentalDisplay name: Guardrail output contextualContextual check types that triggered the guardrail on the response, along with the score achieved by each triggered grounding check.
experimentalDisplay name: Guardrail output PIIsPersonal Identifiable Information categories in response that triggered the Guardrail.
['ADDRESS', 'LICENSE_PLATE', 'DRIVER_ID']
gen_ai.guardrail.output.topic.names
string[]
experimentalDisplay name: Guardrail output topicsTopics in response that triggered the Guardrail.
['investment_advice', 'legal_advice', 'politics']
gen_ai.guardrail.output.words.lists
string[]
experimentalDisplay name: Guardrail output words listsWord lists that triggered the guardrail for response.
['custom-word-list']
gen_ai.guardrail.output.words.matches
string[]
experimentalDisplay name: Guardrail output words matchesWords in response that triggered the Guardrail.
[]
gen_ai.guardrail.version
string
experimentalDisplay name: Guardrail versionVersion of the guardrail that has been activated.
DRAFT; 5; 12345678
gen_ai.input.messages
record[]
experimentalDisplay name: Input messagesList of all user prompts passed to the LLM. This includes "tool" prompts and may include "system" prompts if the instrumented library includes them in the message list.
{'role': 'user', 'content': [{'text': 'What is the capital of France?'}]}
gen_ai.operation.kind
string
experimentalDisplay name: Operation kindAI framework operation being performed.
workflow; task; agent; agent; tool; retrieval
gen_ai.operation.name
string
experimentalDisplay name: Operation nameName of operation being performed.
chat; generate_content; text_completion
gen_ai.output.messages
record[]
experimentalDisplay name: Output messagesList of all LLM responses.
{'role': 'assistant', 'content': [{'text': 'The capital of France is Paris.'}]}
gen_ai.prompt_caching
string
experimentalDisplay name: Prompt cachingIndicates how prompt cache has been used when handling the request.
read; write
gen_ai.provider.name
string
experimentalDisplay name: Provider nameName of GenAI product being used.
aws_bedrock; openai
gen_ai.request.encoding_formats
string[]
experimentalDisplay name: Request encoding formatsThe encoding formats requested in an embeddings operation, if specified.
['base64']; ['float', 'binary']
gen_ai.request.frequency_penalty
double
experimentalDisplay name: Request frequency penaltyFrequency penalty setting for GenAI request.
0.4
gen_ai.request.max_tokens
long
experimentalDisplay name: Request max tokensMaximum number of tokens that the model can generate for a request.
50
gen_ai.request.model
string
experimentalDisplay name: Request modelModel chosen to handle the request.
experimentalDisplay name: Response system fingerprintIdentifier of system used to generate LLM response.
fp_03e44fcc34
gen_ai.system_instructions
record[]
experimentalDisplay name: System instructionsList of all system prompts passed to the LLM, which are not part of input messages list.
{'type': 'text', 'content': 'You are a helpful assistant.'}
gen_ai.usage.input_tokens
long
experimentalDisplay name: Input tokensNumber of tokens sent to the model in the request.
42
gen_ai.usage.output_tokens
long
experimentalDisplay name: Output tokensNumber of tokens generated by the model while handling the request.
42
gen_ai.usage.prompt_caching.read_tokens
long
experimentalDisplay name: Prompt caching read tokensNumber of tokens that has been read from cache.
42
gen_ai.usage.prompt_caching.write_tokens
long
experimentalDisplay name: Prompt caching write tokensNumber of tokens used to generate cache checkpoint.
42
gen_ai.operation.kind has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
agent
Operation invoking an autonomous component that can make decisions or perform actions.
Agent
retrieval
Operation collecting documents for a RAG pipeline.
Retrieval
task
A specific operation or step within a workflow.
Task
tool
Operation invoking a utility or function used within the application.
Tool call
workflow
A high-level process or chain of operations.
Workflow
gen_ai.operation.name has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
chat
Operation of engaging in a conversational exchange with LLM.
Chat
embeddings
Operation of creating embeddings from user input.
Embeddings
text_completion
Operation of completing text based on user input by LLM.
Text Completion
gen_ai.prompt_caching has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
read
Cache hit. Reading from cache.
Read
write
Cache miss. Creating cache checkpoint.
Write
gen_ai.provider.name has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
aws_bedrock
Amazon Bedrock
Amazon Bedrock
openai
OpenAI
OpenAI
HTTP spans
Semantic conventions for HTTP client and server spans.
They can be used for HTTP and HTTPS schemes and various HTTP versions like 1.1, 2, and SPDY.
HTTP common fields
The common fields listed in this section apply to both HTTP clients and servers in addition to the specific fields listed in the HTTP client and HTTP server sections below.
Attribute
Type
Description
Examples
http.request.body.size
long
stableDisplay name: Request body sizeThe size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
3495
http.request.header.__key__
string
stableDisplay name: HTTP request headerHTTP request headers, __key__ being the lowercase HTTP header name, for example, "http.request.header.accept-encoding". The value is a string. If multiple headers have the same name or multiple header values, the values will be comma-separated into a single string.Tags: sensitive-spans
stableDisplay name: Response body sizeThe size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
3495
http.response.header.__key__
string
stableDisplay name: HTTP response headerHTTP response headers, __key__ being the lowercase HTTP header name, for example, "http.response.header.content-type". The value is a string. If multiple headers have the same name or multiple header values, the values will be comma-separated into a single string.
stableDisplay name: URL pathThe URI path component.
/docs/search
url.query
string
stableDisplay name: URL queryThe URI query component.Tags: sensitive-spans
q=OpenTelemetry
url.scheme
string
stableDisplay name: URL schemeThe URI scheme component identifying the used protocol.
https; ftp; telnet
HTTP server fields
This span type represents an inbound HTTP request.
For an HTTP server span, span.kind MUST be server.
Attribute
Type
Description
Examples
client.ip
ipAddress
experimentalDisplay name: Client IP addressIP address of the original client (IPv4 or IPv6) making the request. This request might have passed several proxies or load balancers. The client IP is the result of resolving the socket connection, X-Forward-For, and other headers.Tags: sensitive-spanssensitive-user-events
194.232.104.141; 2a01:468:1000:9::140
http.route
string
stableDisplay name: HTTP routeThe matched route (path template in the format used by the respective server framework).
/users/:userID?; Home/Index/{id?}
server.address
string
stableDisplay name: Server addressName of the local HTTP server that received the request.
example.com
server.port
long
stableDisplay name: Server portLogical server port number.
65123; 80
url.path
string
stableDisplay name: URL pathThe URI path component.
/docs/search
url.query
string
stableDisplay name: URL queryThe URI query component.Tags: sensitive-spans
q=OpenTelemetry
url.scheme
string
stableDisplay name: URL schemeThe URI scheme component identifying the used protocol.
https; ftp; telnet
Messaging spans
Messaging common fields
Attribute
Type
Description
Examples
messaging.batch.failed_count
long
experimentalDisplay name: Batch failed countThe number of messages in the batch for which publishing failed.
1; 3; 15
messaging.batch.failure_codes
string[]
experimentalDisplay name: Batch failure codesThe vendor-provided error codes explaining why an operation on the message broker failed. To limit attribute size, not all error codes might be included.
['MalformedDetail', 'InvalidArgument']
messaging.batch.message_count
long
stableDisplay name: Batch message countThe number of messages sent, received, or processed in the scope of the batching operation.
1; 2; 3
messaging.client.id
string
stableDisplay name: Client IDA unique identifier for the client that consumes or produces a message.
aclient; myhost@68d46b89c9-c29qc
messaging.is_failed
boolean
**deprecatedReplaced by transaction.is_failed in combination with transaction.is_message_processing.**Display name: Is FailedIndicates that the messaging operation is considered failed according to the failure detection rules. Only present if the messaging.operation.type is process.
messaging.message.body.size
long
stableDisplay name: Message body sizeThe (uncompressed) size of the message payload in bytes.
2738
messaging.message.conversation_id
string
stableDisplay name: Conversation IDThe conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
MyConversationId
messaging.message.header.__key__
record
stableDisplay name: Messaging message headerThe message headers, __key__ being the message header/attribute name, for example, "messaging.message.header.ExtendedPayloadSize". The data type of the value depends on the attribute.
1024, "my-eu-bucket-3", ["a", "b"]
messaging.message.id
string
stableDisplay name: Message IDA value used by the messaging system as an identifier for the message, represented as a string.
452a7c7c7c7048c2f887f61572b18fc2
messaging.operation.type
string
stableDisplay name: Messaging operation typeA string identifying the kind of messaging operation.
peek
messaging.system
string
stableDisplay name: Messaging systemAn identifier for the messaging system. See below for a list of well-known identifiers.
stableDisplay name: Server addressLogical server hostname, matches server FQDN if available, and IP or socket address if FQDN is not known. 2
example.com
server.port
long
stableDisplay name: Server portLogical server port number.
65123; 80
server.resolved_ips
ipAddress[]
stableDisplay name: Server resolved ipsA list of IP addresses that are the result of DNS resolution of server.address.
[194.232.104.141, 2a01:468:1000:9::140]
1
Only necessary when the server.* attributes don't apply.
2
This should be the IP/hostname of the broker (or other network-level peer) this specific message is sent to/received from.
messaging.operation.type has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
peek
A message is received from a destination by a message consumer/server, but left there (span.kind is "consumer").
Peek
process
A message previously received from a destination is processed by a message consumer (span.kind is "consumer").
Process
publish
A message is sent to a destination by a message producer (span.kind is "producer").
Publish
receive
A message is received from a destination by a message consumer (span.kind is "consumer").
Receive
messaging.system has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Value
Description
Display name
activemq
ActiveMQ
ActiveMQ
artemis
ActiveMQ Artemis
ActiveMQ Artemis
aws_eventbridge
Amazon EventBridge
AWS EventBridge
aws_sns
Amazon Simple Notification Service (SNS)
AWS SNS
aws_sqs
Amazon Simple Queue Service (SQS)
AWS SQS
azure_eventgrid
Azure Event Grid
Azure Event Grid
azure_eventhubs
Azure Event Hubs
Azure Event Hub
azure_iothub
Azure IoT Hub
azure_servicebus
Azure Service Bus
Azure Service Bus
gcp_pubsub
Google Cloud Pub/Sub
GCP Pub/Sub
hornetq
HornetQ
HornetQ
jms
Java Message Service
JMS
kafka
Apache Kafka
Kafka
mqseries
IBM MQ
IBM MQ
msmq
MSMQ
MSMQ
rabbitmq
RabbitMQ
RabbitMQ
rocketmq
Apache RocketMQ
RocketMQ
sag_webmethods_is
Software AG, webMethods Integration Server
webMethods IS
tibco_ems
Tibco EMS
TIBCO EMS
weblogic
Oracle WebLogic
WebLogic
websphere
IBM WebSphere Application Server
WebSphere
network.transport has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would typically be expected. Usually, all other network attributes can be left out.
Messaging destination fields
A destination represents the component within a messaging system where messages are sent to and consumed from. A destination is usually uniquely identified by its name within the messaging system instance. Examples of a destination name would be a URL or any other identifier of a specific queue, topic, or other entity within the broker.
Messaging producer and consumer spans will have the following messaging destination attributes defined.
Attribute
Type
Description
Examples
messaging.destination.manager_name
string
stableDisplay name: Destination Manager nameThe destination's manager name 1
MyBroker
messaging.destination.name
string
stableDisplay name: Destination nameThe message destination name 2
MyQueue; MyTopic
messaging.destination.temporary
boolean
stableDisplay name: Temporary destinationA boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.
1
Manager name uniquely identifies the broker.
2
Destination name uniquely identifies a specific queue, topic or other entity within the broker.
Akka Messaging
Akka producer fields
Sender side via ActorRef.tell() or ActorSelection.tell() is represented by a span, with span.kind set to producer.
Attribute
Type
Description
Examples
messaging.akka.actor.path
string
experimentalDisplay name: Akka actor pathPath to actor inside actor system.
stableDisplay name: Message body sizeThe (uncompressed) size of the message payload in bytes.
2738
network.transport
string
stableDisplay name: Network transportFor Akka local, network.transport is set to inproc; for Akka remoting, it's set to tcp.
inproc; tcp
server.address
string
stableDisplay name: Server addressLogical server hostname, matches server FQDN if available, and IP or socket address if FQDN is not known. 5
example.com
server.port
long
stableDisplay name: Server portLogical server port number. 6
65123; 80
1
Unavailable in case of network.transport = tcp
2
Unavailable in case of network.transport = inproc
3
Unavailable in case of network.transport = inproc
4
Unavailable in case of network.transport = tcp
5
Unavailable in case of network.transport = inproc
6
Unavailable in case of network.transport = inproc
network.transport has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would typically be expected. Usually, all other network attributes can be left out.
Kafka Messaging
This convention extends the default semantic convention for messaging systems.
Kafka producer fields
Attribute
Type
Description
Examples
messaging.destination.partition.id
string
stableDisplay name: Destination partition IDString representation of the partition ID the message is sent to or received from.
1
messaging.kafka.message.key
string
experimentalDisplay name: Kafka message keyThe key property of the message.
mykey
messaging.kafka.message.tombstone
boolean
experimentalDisplay name: Kafka tombstoneA boolean that is true if the message is a tombstone. 1
true
messaging.kafka.offset
long
experimentalDisplay name: Kafka offsetThe offset of the message.
42
1
If the message is a tombstone, the value is true. When missing, the value is assumed to be false.
Kafka consumer fields
Attribute
Type
Description
Examples
messaging.consumer.group.name
string
stableDisplay name: Consumer group nameThe name of the consumer group with which a consumer is associated. 1
my-group; indexer
messaging.destination.partition.id
string
stableDisplay name: Destination partition IDString representation of the partition ID the message is sent to or received from.
1
messaging.kafka.message.key
string
experimentalDisplay name: Kafka message keyThe key property of the message.
mykey
messaging.kafka.message.tombstone
boolean
experimentalDisplay name: Kafka tombstoneA boolean that is true if the message is a tombstone. 2
true
messaging.kafka.offset
long
experimentalDisplay name: Kafka offsetThe offset of the message.
If the message is a tombstone, the value is true. When missing, the value is assumed to be false.
RPC spans
Fields that describe remote procedure calls (also called "remote method invocations" / "RMI") with spans.
A remote procedure call is described by two separate spans, one on the client and one on the server side.
For outgoing requests, the SpanKind MUST be set to client and for incoming requests to server.
RPC common fields
Attribute
Type
Description
Examples
network.protocol.name
string
stableDisplay name: Network protocolThe protocol that is used in the remote procedure call or web service. It can be omitted if it matches with rpc.system. See below for a list of well-known identifiers.
experimentalDisplay name: RPC methodThe name of the (logical) method being called 1
exampleMethod
rpc.namespace
string
experimentalDisplay name: RPC namespaceThe namespace of the method being called. In SOAP, it would be the XML namespace.
tempuri.org
rpc.service
string
experimentalDisplay name: RPC serviceThe full (logical) name of the service being called, including its package name, if applicable. 2
myservice.EchoService
rpc.system
string
experimentalDisplay name: RPC systemA string identifying the remoting system or framework. See below for a list of well-known identifiers.
apache_cxf; dotnet_wcf; grpc; jax_ws
server.address
string
stableDisplay name: Server addressLogical server hostname, matches server FQDN if available, and IP or socket address if FQDN is not known.
example.com
server.port
long
stableDisplay name: Server portLogical server port number.
65123; 80
server.resolved_ips
ipAddress[]
stableDisplay name: Server resolved ipsA list of IP addresses that are the result of DNS resolution of server.address.
[194.232.104.141, 2a01:468:1000:9::140]
1
This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The code.function attribute may be used to store the latter (e.g., method executing the call on the server side, RPC client stub method on the client side).
2
This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The code.namespace attribute may be used to store the latter (despite the attribute name, it may include a class name, e.g., class with method executing actually executing the call on the server side, RPC client stub class on the client side).
RPC server fields
This span type represents an inbound RPC request.
For an RPC server span, SpanKind is Server.
Attribute
Type
Description
Examples
code.function
string
experimentalDisplay name: Code functionThe method or function name, or equivalent (usually the rightmost part of the code unit's name). Represents the name of the function that is represented by this span. 1
serveRequest
code.invoked.function
string
experimentalDisplay name: Invoked functionLike code.function, only it represents the function that was active when a span has been started. Typically, it's the function that has been instrumented. The spans duration does not reflect the duration of this function execution. It should only be set if it differs from code.function.
invoke
code.invoked.namespace
string
experimentalDisplay name: Invoked namespaceLike code.namespace, only it represents the namespace of the function that was active when a span has been started. Typically, it's the function that has been instrumented. It should only be set if it differs from code.namespace.
com.sun.xml.ws.server.InvokerTube$2
code.namespace
string
experimentalDisplay name: Code namespaceThe namespace within which code.function is defined. Usually, the qualified class or module name, such that code.namespace + some separator + code.function forms a unique identifier for the code unit. 2
z/OS Connect EE (Enterprise Edition) is an IBM product that exposes applications and data in z/OS subsystems such as CICS, IMS, or MQ via a RESTful API.
The z/OS Connect EE (v3.0) implementation is built on the WebSphere Application Server for the z/OS Liberty profile.
z/OS Connect client fields
Attribute
Type
Description
Examples
ibm.cics.program
string
resourceexperimentalDisplay name: IBM CICS programThe name of the CICS program. 1
EDUCHAN
zosconnect.api.description
string
experimentalDisplay name: API descriptionThe z/OS Connect API description.
The API for the CICS catalog manager sample application.
zosconnect.api.name
string
experimentalDisplay name: API nameThe z/OS Connect API name.
catalog
zosconnect.api.version
string
experimentalDisplay name: API versionThe z/OS Connect API version.
1.0.0
zosconnect.request.body.size
long
experimentalDisplay name: Request body sizeThe size of the request payload in bytes.
experimentalDisplay name: Request typeThe type of the REST request. 2
ADMIN
zosconnect.response.body.size
long
experimentalDisplay name: Response body sizeThe size of the response payload in bytes.
125
zosconnect.service.description
string
experimentalDisplay name: Service descriptionThe z/OS Connect service description.
EDUCHAN service using the CICS Service Provider
zosconnect.service.name
string
experimentalDisplay name: Service nameThe z/OS Connect service name.
placeOrder
zosconnect.service.provider.name
string
experimentalDisplay name: Service provider nameThe service provider name.
CICS-1.0
zosconnect.service.version
string
experimentalDisplay name: Service versionThe z/OS Connect service version.
2.0
zosconnect.sor.identifier
string
experimentalDisplay name: System of record identifierThe system of record identifier. The format differs depending on the SOR type. 3
localhost:8080
zosconnect.sor.reference
string
experimentalDisplay name: System of record referenceThe system of record reference.
cicsConn
zosconnect.sor.resource
string
experimentalDisplay name: System of record resourceIdentifier for the resource invoked on the system of record. The format differs depending on the SOR type. 4
01,DFH0XCMN
zosconnect.sor.type
string
experimentalDisplay name: System of record typeThe system of record type.
zosconnect.request.type MUST be one of the following:
Value
Description
Display name
ADMIN
admin
Admin
API
api
API
SERVICE
service
Service
UNKNOWN
unknown
Unknown
zosconnect.sor.type MUST be one of the following:
Value
Description
Display name
CICS
cics
CICS
IMS
ims
IMS
MQ
mq
MQ
REST
rest
REST
WOLA
wola
WOLA
z/OS spans
The semantic conventions for z/OS client and server spans. You can use them for CICS and IMS schemes.
Common fields
The common attributes listed in this section apply to both CICS and IMS clients and servers, in addition to the specific attributes listed in the CICS common, CICS client, and CICS server sections below.
Attribute
Type
Description
Examples
zos.transaction.call_type
string
experimentalDisplay name: Transaction call typeThe type of transaction call that was invoked.
CTG
zos.transaction.job_name
string
resourceexperimentalDisplay name: z/OS transaction job nameThe jobname of the z/OS address space that the transaction executed in.
CICSAOR0; CTGATM00; IMSCR15
zos.transaction.lpar_name
string
resourceexperimentalDisplay name: z/OS transaction lpar nameThe name of the LPAR that the transaction executed on.
S0W1; ABCD
CICS common fields
The common attributes of a CICS client/server transaction.
Attribute
Type
Description
Examples
cics.transaction.system_id
string
resourceexperimentalDisplay name: CICS transaction system IDThe system ID of the CICS region that this transaction executed on.
C259; CICS
cics.transaction.task_id
long
experimentalDisplay name: CICS task IDThe CICS task ID of this transaction.
1234
CICS client fields
This span type represents an outbound CICS request.
For a CICS client span, span.kind is client.
Attribute
Type
Description
Examples
cics.transaction.system_id
string
resourceexperimentalDisplay name: CICS transaction system IDThe system ID of the server CICS region that will contain the started server transaction.
C259; CICS
zos.transaction.lpar_name
string
resourceexperimentalDisplay name: z/OS transaction lpar nameThe LPAR name that hosts the CICS region that will contain the started server transaction.
S0W1; ABCD
CICS server fields
This span type represents an inbound CICS request.
For a CICS server span, span.kind MUST be server.
Attribute
Type
Description
Examples
cics.transaction.system_id
string
resourceexperimentalDisplay name: CICS transaction system IDThe system ID of the client CICS region that triggered this transaction.
C259; CICS
zos.transaction.lpar_name
string
resourceexperimentalDisplay name: z/OS transaction lpar nameThe LPAR name that hosts the client CICS region.