ThousandEyes for OpenTelemetry Data Model v2 - Traces
Supported Test Types
Network & App Synthetics Tests
- Transaction tests support only the - page-loadlayer.
- Page load and API tests support all configured layers. 
Test type
Resource attributes
Span attributes
Page load
- meta.signal_type
- service.name
- thousandeyes.account.id
- thousandeyes.data.version
- thousandeyes.permalink
- thousandeyes.source.agent.id
- thousandeyes.source.agent.location
- thousandeyes.source.agent.name
- thousandeyes.source.agent.geoname.id
- thousandeyes.source.agent.geo.region.iso_code
- thousandeyes.source.agent.geo.country.iso_code
- thousandeyes.stream.id
- thousandeyes.test.domain
- thousandeyes.test.id
- thousandeyes.test.name
- thousandeyes.test.type
- http.request.method
- http.response.code
- server.address
- server.port
- url.full
Transaction
- meta.signal_type
- service.name
- thousandeyes.account.id
- thousandeyes.data.version
- thousandeyes.permalink
- thousandeyes.source.agent.id
- thousandeyes.source.agent.location
- thousandeyes.source.agent.name
- thousandeyes.source.agent.geoname.id
- thousandeyes.source.agent.geo.region.iso_code
- thousandeyes.source.agent.geo.country.iso_code
- thousandeyes.stream.id
- thousandeyes.test.domain
- thousandeyes.test.id
- thousandeyes.test.name
- thousandeyes.test.type
- http.request.method
- http.response.code
- server.address
- server.port
- url.full
API
- meta.signal_type
- service.name
- thousandeyes.account.id
- thousandeyes.data.version
- thousandeyes.permalink
- thousandeyes.source.agent.id
- thousandeyes.source.agent.location
- thousandeyes.source.agent.name
- thousandeyes.source.agent.geoname.id
- thousandeyes.source.agent.geo.region.iso_code
- thousandeyes.source.agent.geo.country.iso_code
- thousandeyes.stream.id
- thousandeyes.test.domain
- thousandeyes.test.id
- thousandeyes.test.name
- thousandeyes.test.type
- http.request.method
- http.response.code
- server.address
- server.port
- url.full
- step
Attributes
The OpenTelemetry pipeline supports the following OTel attributes:
Resource Attributes
Attribute
Type
Description
meta.signal_type
String
OpenTelemetry Signal type. Possible values: trace
service.name
String
Name of the service
thousandeyes.account.id
String
The ID of the account that the telemetry data is associated with.
thousandeyes.data.version
String
Specifies the version of the data model. Possible values:
- v1
- v2
thousandeyes.permalink
String
ThousandEyes test permalink
thousandeyes.source.agent.id
String
Identifies the ThousandEyes agent that ran the test
thousandeyes.source.agent.location
String
Location of the ThousandEyes source agent
thousandeyes.source.agent.name
String
Name of the ThousandEyes source agent
thousandeyes.source.agent.geoname.id
String
The GeoNames ID of the ThousandEyes source agent that ran the test. For more information, see [GeoNames](https://www.geonames.org/about.html).
thousandeyes.source.agent.geo.region.iso_code
String
ISO code for the region where the source agent is located.
thousandeyes.source.agent.geo.country.iso_code
String
ISO code for the country where the source agent is located.
thousandeyes.stream.id
String
UUID of the integration used to route the data point to the external service
thousandeyes.test.domain
String
Identifies the origin of the test data. Possible values: cea (Network & App Synthetics)
thousandeyes.test.id
String
Identifies the ThousandEyes test
thousandeyes.test.name
String
Name of the ThousandEyes test
thousandeyes.test.type
String
Identifies the type of test. Possible values: "page-load", "web-transactions", "api"
Span Attributes
Attribute
Type
Description
http.request.method
String
HTTP request method. Enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- PATCH
- CONNECT
http.response.code
Integer
HTTP response code
server.address
String
Server address
server.port
Integer
Server port
url.full
String
Full URL of the request
step
Integer
Step ID for API tests. Identifies individual steps in multi-step API test sequences.
Span Fields
Each span has set of fields that should be populated:
Field
Type
Description
trace_id
String
Trace ID representing the trace that the span is a part of
span_id
String
Span ID representing the span
parent_span_id (optional)
String
Parent span ID representing the parent span of the current span
name
String
Name of the span
kind
Enum
Kind of span. Enum:
- SPAN_KIND_UNSPECIFIED
- SPAN_KIND_INTERNAL
- SPAN_KIND_SERVER
- SPAN_KIND_CLIENT
- SPAN_KIND_PRODUCER
- SPAN_KIND_CONSUMER
start_time_unix_nano
Integer
The start time of the span, expressed in the number of nanoseconds since the Unix epoch
end_time_unix_nano
Integer
The end time of the span, expressed in the number of nanoseconds since the Unix epoch
status
Possible values for code:
- STATUS_CODE_UNSET
- STATUS_CODE_OK
- STATUS_CODE_ERROR
Each span has a status. Status is structurally defined by the following properties:
- code: Status code. It should be an enumerated StatusCode, one of the values listed below.
- message: (Optional) Description of the status.
For more information on the OpenTelemetry data model, see the OpenTelemetry specification.
Tags as Attributes
Any tag associated with streamed tests is converted into an attribute of the Resource.
Additionally, any tag associated with Cloud and Enterprise Agents used by tests associated with streams is converted into a Resource attribute.
Each tag is defined by a key and a value.
When a tag is converted to an attribute:
- If there are several values for the same key, the attribute value will be represented as an array containing the - stringelements that are the values associated with the tag's- key.
- If there is only one value for the key, the attribute value will be represented as - string.
If tests and Cloud and Enterprise Agents are assigned to the same tag, the unique set of values are provided as attribute values.
Attributes generated from ThousandEyes tags are dropped if the tags include characters that are not allowed by the OpenTelemetry naming recommendations for attributes.
Consider the following scenario where:
- A stream is configured with test - 1234and the following tags:- branch:sfo
- branch:nyc
- team:netops
 
- The following tags are associated with test - 1234:- branch:sfo
- branch:nyc
- team:netops
- cluster:analytics
 
- The following tags are associated with the source agent used by test - 1234:- branch:sfo
- location:us
 
The resulting attributes would be structured as follows:
{
  resource_metrics {
    resource {
      attributes {
        key: "branch"
        value {
          array_value: {
            values: [
              {
                string_value: "sfo"
              },
              {
                string_value: "nyc"
              }
            ]
          }
        }
      }
      attributes {
        key: "team"
        value {
          string_value: "netops"
        }
      }
      attributes {
        key: "cluster"
        value {
          string_value: "analytics"
        }
      }
      attributes {
        key: "location"
        value {
          array_value: {
            values: [
              {
                string_value: "us"
              }
            ]
          }
        }
      }
    }
  }
}Notes:
- The - cluster:analyticstag is not converted into an attribute because it is not configured in the stream, even though it is associated with the streamed test.
- The - branch:sfotag is not added twice to the- Resourcebecause the key-value pair already exists in the attributes.
Last updated
