ThousandEyes for OpenTelemetry Data Model v1

Supported Test Types

Note: An asterisk (*) signifies attributes that are commonly found in many tests. Tests that do not include these common attributes typically have other agent-related attributes, such as OneWay metrics, or monitor information for BGP tests.

Cloud and Enterprise Agents

Test Type

Metrics

Specific Attributes

Http Server

  • http.metrics.availability (percentage)

  • http.metrics.throughput (bytes/second)

  • http.metrics.response.time (milliseconds)

  • Url

  • Server.ip

  • Response.code

  • error.type

Agent-to-Server (Network)

  • net.metrics.latency (milliseconds)

  • net.metrics.loss (percentage)

  • net.metrics.jitter (milliseconds)

  • server.name

  • server.ip

One-way Agent-to-Agent (Network)

  • net.metrics.latency (milliseconds)

  • net.metrics.loss (percentage)

  • net.metrics.jitter (milliseconds)

  • direction

  • source.agent.*

  • target.agent.*

Two-way Agent-to-Agent (Network)

  • net.metrics.latency (milliseconds)

  • net.metrics.loss (percentage)

  • net.metrics.jitter (milliseconds)

  • direction

BGP

  • bgp.metrics.path.changes (number)

  • bgp.metrics.reachability (percentage)

  • bgp.metrics.updates (number)

  • monitor.id

  • monitor.name

  • monitor.location

  • prefix

Web Transaction

  • transaction.metrics.time (milliseconds)

  • transaction.metrics.errors (number: 0 if there are no errors, 1 if there are errors)

  • transaction.metrics.completion (percentage)

  • error.type

  • error.details

DNS Server

  • dnsserver.metrics.availability (percentage)

  • dnsserver.metrics.resolution.time (milliseconds)

  • error.details

  • server.id

  • server.name

DNSSEC

  • dnssec.metrics.validity (percentage)

  • error.details

DNS Trace

  • dnstrace.metrics.availability (percentage)

  • dnstrace.metrics.query.time (milliseconds)

  • error.details

  • query.count

  • query.failed_count

  • finalserver

Page Load

  • pageload.metrics.completion (percentage)

  • pageload.metrics.time (milliseconds)

  • error.details

  • error.num

  • response.time.first

  • response.time.dom

  • object.size

  • object.num

FTP Server

  • ftp.metrics.availability (percentage)

  • ftp.metrics.response.time (milliseconds)

  • ftp.metrics.throughput (bytes/second)

  • error.type

  • server.ip

SIP Server

  • sip.metrics.availability (percentage)

  • sip.metrics.response.time (milliseconds)

  • sip.metrics.total.time (milliseconds)

  • error.type

  • error.details

  • server.ip

RTP Stream

  • rtp.metrics.mos (score)

  • rtp.metrics.loss (percentage)

  • rtp.metrics.discards (percentage)

  • rtp.metrics.latency (milliseconds)

  • server.ip

API Test

  • api.metrics.completion (percentage)

  • api.metrics.time (milliseconds)

  • error.type

  • error.details

API Test per step

  • api.step.metrics.completion (percentage)

  • api.step.metrics.time (milliseconds)

  • step

  • url.full

  • http.request.method

Endpoint Agents

Test Type

Metrics

Specific Attributes

Http Server

  • http.metrics.availability (percentage)

  • http.metrics.throughput (bytes/second)

  • http.metrics.response.time (milliseconds)

  • url

  • server.ip

  • response.code

  • error.type

Agent-to-Server (Network)

  • net.metrics.latency (milliseconds)

  • net.metrics.loss (percentage)

  • net.metrics.jitter (milliseconds)

  • server.ip

Metrics

Cloud and Enterprise Agent Test Data

HTTP Server

Key

Data Type

Description

http.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the availability is 0, otherwise 100%.

http.metrics.throughput

Long (bytes/second)

Throughput of test in bytes/second.

http.metrics.response.time

Long (milliseconds)

Total time it took to execute the request.

Agent-to-Server (Network)

Key

Data Type

Description

net.metrics.latency

Long (milliseconds)

The maximum round trip time for the packets sent to the target.

net.metrics.loss

Float (percentage)

Packet loss.

net.metrics.jitter

Long (milliseconds)

Standard deviation for the round trip times.

Agent-to-Agent (One-Way)

Key

Data Type

Description

net.metrics.latency

Long (milliseconds)

The average latency for this data point.

net.metrics.loss

Float (percentage)

Packet loss.

net.metrics.jitter

Long (milliseconds)

The average jitter for this data point.

Agent-to-Agent (Two-Way)

Key

Data Type

Description

net.metrics.latency

Long (milliseconds)

The average latency for this data point.

net.metrics.loss

Float (percentage)

The average loss for this data point.

net.metrics.jitter

Long (milliseconds)

The average jitter for this data point.

Web Transaction

Key

Data Type

Description

webtransaction.metrics.transaction.time

Long (milliseconds)

The time it took the transaction to complete successfully. This metric is not exposed if there are errors.

webtransaction.metrics.completion

Float (percentage)

Percentage of completion of the transaction. 100% if the transaction completes successfully, 0% if there are errors.

webtransaction.metrics.errors

Long (count)

Determines whether there were errors or not. 1 if there’s an error processing the transaction, 0 if not.

DNS Server

Key

Data Type

Description

dnsserver.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the availability is 0, otherwise 100%.

dnsserver.metrics.resolution.time

Long (milliseconds)

DNS resolve time.

DNSSEC

Key

Data Type

Description

dnssec.metrics.validity

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the validity is 0, otherwise 100%.

DNS Trace

Key

Data Type

Description

dnstrace.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the validity is 0, otherwise 100%.

dnstrace.metrics.query.time

Long (milliseconds)

Final query time.

Page load

Key

Data Type

Description

pageload.metrics.completion

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the validity is 0, otherwise 100%.

pageload.metrics.time

Long (milliseconds)

Time to completely load the page.

FTP Server

Key

Data Type

Description

ftp.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the availability is 0, otherwise 100%.

ftp.metrics.throughput

Long (bytes/second)

Throughput of test in bytes/second.

ftp.metrics.response.time

Long (milliseconds)

Total time it took to get the first byte while executing the request.

SIP Server

Key

Data Type

Description

sip.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the availability is 0, otherwise 100%.

sip.metrics.response.time

Long (milliseconds)

Total time it took to get the first byte while executing the request.

sip.metrics.total.time

Long (milliseconds)

Total time it took until the last response was received.

RTP Stream

Key

Data Type

Description

rtp.metrics.mos

Float (score)

Mean opinion score (MOS). A measurement of perceived voice quality, ranging from 1 to 5. A MOS of 5 indicates excellent voice call quality, while a MOS of 1 indicates poor voice call quality.

rtp.metrics.loss

Float (percentage)

Percentage of frames lost computed from lost frames count and total frames.

rtp.metrics.discards

Float (percentage)

Percentage of frames discarded computed from discarded frames count and total frames.

rtp.metrics.latency

Long (milliseconds)

Total time it took for the test round execution.

API

Key

Data Type

Description

api.metrics.time

Long (milliseconds)

The time the entire API test took to run including all steps.

api.metrics.completion

Float (percentage)

Percentage of completion of all the steps of the API test.

Per request:

api.step.metrics.time

Long (milliseconds)

The time it took the API test to complete the step.

api.step.metrics.completion

Float (percentage)

Percentage of completion of the step of the API test. 100% if the step is completed successfully, 0% if there are errors.

Endpoint Test Data

HTTP Server

Key

Data Type

Description

http.metrics.availability

Float (percentage)

Calculated depending on the errors reported during the test. In case there is any error, the availability is 0, otherwise 100%.

http.metrics.throughput

Long (bytes/second)

Throughput of test in bytes/second.

http.metrics.response.time

Long (milliseconds)

Time to first byte to execute the request.

Agent-to-Server (Network)

Key

Data Type

Description

net.metrics.latency

Long (milliseconds)

The maximum round trip time for the packets sent to the target.

net.metrics.loss

Float (percentage)

Packet loss.

net.metrics.jitter

Long (milliseconds)

Standard deviation for the round trip times.

Attributes

The OpenTelemtery pipeline supports the following OTel test data attributes:

Common Resource Attributes

Key

Data Type

Description

thousandeyes.stream.id

String (UUID)

ID of the integration used to route the data point to the external service.

thousandeyes.data.version

String

Specifies the version of the data model. Possible values: v1, v2

Common Metric Attributes

Key

Data Type

Description

test.domain

String

Identifies the origin of the test data. Possible values: cea (Cloud and Enterprise Agents), endpoint (Endpoint Agents).

test.type

String

Identifies the type of test. Possible values: "agent-to-agent", "agent-to-server", "dns-dnssec", "dns-server", "dns-trace", "ftp-server", "http-server", "page-load", "voice" , "sip-server, "web-transactions".

test.name

String

The name of the ThousandEyes test.

agent.id*

Int64

Identifies the ThousandEyes agent that ran the test.

agent.location*

String

Agent location.

agent.name*

String

Agent name.

datapoint.created

Int64 (milliseconds)

Time in milliseconds when the DataPoint was created by the agent.

datapoint.id

String

Unique ID for each data point.

datapoint.received

Int64 (milliseconds)

Time in milliseconds when the DataPoint was received from Kafka by the collectors.

integration.id

String (UUID)

ID of the integration used to route the data point to the external service.

account.id

String

The ID of the account that the telemetry data is associated with.

permalink

String (URL)

URL for the network test instance that generated the data.

round.id

Int64

Identifies the network test instance that generated the data.

test.id

String

Identifies the ThousandEyes network test.

Tags as Attributes

Any tag associated with the test is transformed into an attribute of the DataPoint.

Each tag is defined by a key and a value. For instance, you might have tags such as branch:sfo or branch:nyc.

When a tag is converted to an attribute, its value is an array containing the string elements that are the values associated with the tag's key.

For the tag examples above, the resulting attribute would be structured as follows:

attributes {
  key: "branch"
  value {
    array_value {
      values {
        string_value: "sfo",
        string_value: "nyc"
      }
    }
  }
}

Note that not all observability platforms accommodate the use of string arrays for attribute values. For instance, New Relic does not support this format. If your backend does not support string arrays for attributes, the tag attribute is excluded from the metric.

Cloud and Enterprise Agent Test Attributes

Agent-to-Agent (One Way)

Key

Data Type

Description

direction

Enum

SOURCE_TO_TARGET or TARGET_TO_SOURCE.

source.agent.id

Int64

Identifies the ThousandEyes agent that ran the test.

source.agent.location

String

Source agent location.

source.agent.name

String

Source agent name.

target.agent.id

Int64

Identifies the ThousandEyes agent that was the target of the network test.

target.agent.location

String

Target agent location.

target.agent.name

String

Target agent name.

Agent-to-Agent (Two Way)

Key

Data Type

Description

direction

String

BIDIRECTIONAL

BGP

Key

Data Type

Description

prefix

String

A BGP prefix includes the IP address and the subnet mask. It is assigned to a particular network.

monitor.id

String

The BGP monitor ID. The monitor collects BGP data from different Autonomous Systems (AS) around the world to understand how routes are being propagated.

monitor.name

Int64

The name of the BGP monitor.

monitor.location

Int64

The location of the BGP monitor.

Web Transaction

Key

Data Type

Description

error.type

String

The type of error which occurred during the execution of the transaction. This attribute only exists if there are errors.

error.details

String

Details of errors during the execution of the transaction. This attribute only exists if there are errors.

DNS Server

Key

Data Type

Description

error.details

String

Details of errors during test execution. This attribute only exists if there are errors.

server.id

String

ID of the server targeted by the test.

server.name

String

Test target server host name.

DNSSEC

Key

Data Type

Description

error.details

String

Details of errors during test execution. This attribute only exists if there are errors.

DNS Trace

Key

Data Type

Description

error.details

String

Details of errors during test execution. This attribute only exists if there are errors.

query.count

Int64

Number of required queries to get to the requested result.

query.failed_count

Int64

Number of failed queries while getting the requested result.

finalserver

String

DNS server that provided the final result.

Page load

Key

Data Type

Description

error.details

String

Details of errors during test execution. This attribute only exists if there are errors.

error.num

Int64

Number of objects which encountered errors during download.

response.time.first

float64

Time to first byte.

response.time.dom

float64

Time to interaction.

object.size

Int64

Sum of wire size of all objects on page.

object.num

Int64

Number of objects found on the page.

FTP Server

Key

Data Type

Description

server.ip

String

IP of the server targeted by the FTP test.

error.type

String

The error type for the test (not set if there is no error).

SIP Server

Key

Data Type

Description

server.ip

String

IP of the server targeted by the SIP test (or SIP proxy, if proxy is configured).

error.type

String

The error type for the test (not set if there is no error).

error.details

String

Details about the error which occurred during the execution. This attribute only exists if there are errors.

API

Key

Data Type

Description

error.type

String

The type of error which occurred during the execution of the API test. This attribute only exists if there are errors.

error.details

String

Details about the error which occurred during the execution of the API test. This attribute only exists if there are errors.

API Step

Key

Data Type

Description

step

Int

The step ID.

url.full

String

HTTP request absolute URL.

http.request.method

String

HTTP request method.

Endpoint Agent Test Attributes

HTTP Server

Key

Data Type

Description

url

String

The final URL after redirects.

server.ip

String

IP of the server targeted by the network test.

response.code

Int64

HTTP response status code (only set if there was a HTTP response).

error.type

String

The error type for the test (not set if there is no error).

Agent-to-Server (Network)

Key

Data Type

Description

server.name

String

The final URL after redirects.

server.ip

String

IP of the server targeted by the network test.

Last updated