ThousandEyes for OpenTelemetry Data Model v2

Supported Test Types

CEA (Cloud and Enterprise Agents)

Test Type

Metrics

Specific Resource Attributes

Specific Metric Attributes

HTTP Server

  • http.server.request.availability (Percentage)

  • http.server.throughput (Bytes-per-second)

  • http.client.request.duration(Seconds)

  • server.address

  • server.port

  • url.scheme

  • http.request.method

  • http.route

  • error.type

  • http.response.status_code

Agent-to-Server (Network)

  • network.latency(Seconds)

  • network.loss (Percentage)

  • network.jitter (Milliseconds)

  • server.address

  • server.port

  • network.transport

  • error.type

Agent-to-Agent (Network)

One-way Agent-to-Agent (Network) & Both-ways Agent-to-Agent (Network)

  • network.latency(Seconds)

  • network.loss(Percentage)

  • network.jitter (Milliseconds)

  • network.transport

  • server.port

  • thousandeyes.target.agent.id

  • thousandeyes.target.agent.name

  • thousandeyes.target.agent.location

  • network.io.direction

  • error.type

BGP

  • bgp.path_changes.count (Count)

  • bgp.reachability (Percentage)

  • bgp.updates.count (Count)

  • network.prefix

  • thousandeyes.monitor.id

  • thousandeyes.monitor.name

  • thousandeyes.monitor.location

Web Transaction

  • web.transaction.duration (Seconds)

  • web.transaction.errors.count (Count)

  • web.transaction.completion (Percentage)

  • error.type

DNS Server

  • dns.lookup.availability (Percentage)

  • dns.lookup.duration (Seconds)

  • dns.question.name

  • error.type

DNSSEC

  • dns.lookup.validity (Percentage)

  • dns.question.name

  • error.type

DNS Trace

  • dns.lookup.availability (Percentage)

  • dns.lookup.duration (Seconds)

  • dns.question.name

  • error.type

Page Load

  • web.page_load.duration (Seconds)

  • web.page_load.completion (Percentage)

  • server.address

  • server.port

  • error.type

FTP Server

  • ftp.server.request.availability (Percentage)

  • ftp.client.request.duration (Seconds)

  • ftp.server.throughput (Bytes-per-second)

  • server.address

  • ftp.request.command

  • url.scheme

  • server.port

  • error.type

  • ftp.response.status_code

SIP Server

  • sip.server.request.availability (Percentage)

  • sip.client.request.duration (Seconds)

  • sip.client.request.total_time (Seconds)

  • server.address

  • server.port

  • error.type

  • sip.response.status_code

RTP Stream

  • rtp.client.request.mos (Score)

  • rtp.client.request.loss (Percentage)

  • rtp.client.request.discards (Percentage)

  • rtp.client.request.duration (Seconds)

  • rtp.client.request.pdv (Milliseconds)

  • thousandeyes.target.agent.id

  • thousandeyes.target.agent.name

  • thousandeyes.target.agent.location

  • error.type

API Test

  • api.duration (Seconds)

  • api.completion (Percentage)

API Test per step

  • api.step.duration(Seconds)

  • api.step.completion (Percentage)

  • server.address

  • server.port

  • url.scheme

  • http.request.method

  • thousandeyes.test.step

  • error.type

Endpoint Agents

Test Type

Metrics

Specific Resource Attributes

Specific Metric Attributes

HTTP Server

  • http.server.request.availability (Percentage)

  • http.server.throughput (Bytes-per-second)

  • http.client.request.duration(Seconds)

  • server.address

  • server.port

  • url.scheme

  • http.request.method

  • error.type

  • http.response.status_code

Agent-to-Server (Network)

  • network.latency(Seconds)

  • network.loss (Percentage)

  • network.jitter (Milliseconds)

  • server.address

  • server.port

  • network.transport

  • error.type

Metrics

Key

Data Type

Description

http.server.request.availability

Double (Percentage)

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

http.server.throughput

Double (Bytes-per-second)

Throughput of test in bytes/second.

http.client.request.duration

Double (Seconds)

This is the time-to-first-byte as measured in the client

network.latency

Double (Seconds)

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

networks.loss

Double (Percentage)

Packet loss.

network.jitter

Double (Milliseconds)

Standard deviation for the round trip times.

web.transaction.duration

Double (Seconds)

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

web.transaction.completion

Double (Percentage)

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

web.transaction.errors.count

Integer (count)

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

dns.lookup.availability

Double (Percentage)

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

dns.lookup.duration

Double (Seconds)

DNS resolve time.

dns.lookup.validity

Double (Percentage)

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

web.page_load.completion

Double (Percentage)

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

web.page_load.duration

Double (Seconds)

Time to completely load the page.

ftp.server.request.availability

Double (Percentage)

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

ftp.server.throughput

Integer (Bytes-per-second)

Throughput of test in bytes/second.

ftp.client.request.duration

Double (Seconds)

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

sip.server.request.availability

Double (Percentage)

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

sip.client.request.duration

Double (Seconds)

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

sip.client.request.total_time

Double (Seconds)

Total time it took until the last response was received.

rtp.client.request.mos

Double (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.client.request.loss

Double (Percentage)

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

rtp.client.request.discards

Double (Percentage)

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

rtp.client.request.duration

Double (Seconds)

Total time it took for the test round execution.

rtp.client.request.duration

Long (Seconds)

Packet delay variation

bgp.path_changes.count

Integer (count)

Number of BGP route changes

bgp.reachability

Double (Percentage)

Whether BGP route target is reachable

bgp.updates.count

Integer (count)

Number of BGP updates

api.duration

Double (Seconds)

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

api.completion

Double (Percentage)

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

api.step.duration

Double (Seconds)

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

api.step.completion

Double (Percentage)

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

Attributes

The OpenTelemtery pipeline supports the following OTel attributes:

Common Resource Attributes

Key

Data Type

Description

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, endpoint.

thousandeyes.test.id

String

Identifies the ThousandEyes test.

thousandeyes.test.name

String

The name of the ThousandEyes test.

thousandeyes.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", "rtp", "bgp", "api"

thousandeyes.source.agent.id

String

Identifies the ThousandEyes agent that ran the test.

Note: this attribute is not part of BGP metrics

thousandeyes.source.agent.location

String

Agent location.

Note: this attribute is not part of BGP metrics

thousandeyes.source.agent.name

String

Agent name.

Note: this attribute is not part of BGP metrics

thousandeyes.data.version

String

Specifies the version of the data model. Possible values:

  • v1

  • v2

Common Metric Attributes

Key

Data Type

Description

thousandeyes.permalink

String

URL for the network test instance that generated the data.

Tags as Attributes

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

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

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 string elements 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

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

{

 resource_metrics {
   resource {
     attributes {
       key: "thousandeyes.user.branch"
       value {
       arrayValue: {
           values": [
               {
                 stringValue: "sfo"
               },
               {
                 stringValue: "nyc"
               }
            ]
        }
       }
     }
     attributes {
       key: "team"
       value {
         string_value: "netops"
       }
     }
   }  
 }
} 

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.

Specific Resource Attributes

Key

Data Type

Description

server.address

String

Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.

server.port

Integer

Server port number.

url.scheme

String

The URI scheme component identifies the used protocol. Enum:

  • http

  • https

http.request.method

String

HTTP request method. Enum:

  • GET

  • POST

  • HEAD

  • PUT

  • DELETE

  • OPTIONS

  • PATCH

  • CONNECT

http.route

String

The matched route

network.transport

String

OSI transport layer or inter-process communication method. Enum:

  • tcp

  • udp

  • icmp

thousandeyes.target.id

String

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

thousandeyes.target.agent.location

String

Target agent location.

thousandeyes.target.agent.name

String

Target agent name.

network.io.direction

String

The network IO operation direction.Enum:

  • transmit

  • receive

  • round-trip

dns.question.name

String

The name being queried.

network.prefix

String

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

thousandeyes.monitor.id

String

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

thousandeyes.monitor.name

String

The name of the BGP monitor.

thousandeyes.monitor.location

String

The location of the BGP monitor.

ftp.request.command

String

FTP request method. Enum:

  • GET

  • PUT

  • LS

thousandeyes.test.step

Integer

The API step ID.

Specific Metric Attributes

Key

Data Type

Description

error.type

String

Describes a class of error the operation ended with.

http.response.status_code

Integer

HTTP response status code

ftp.response.status_code

Integer

FTP response status code

sip.response.status_code

Integer

SIP response status code

Metric Unit

Name

Value

Type

Count

1

Integer

Error Count

1{error}

Integer

(BGP) Path Changes Count

1{PC}

Integer

(BGP) Updates Count

1{update}

Integer

Score

1{score}

Double

Milliseconds

ms

Double

Seconds

s

Double

Percentage

%

Double

Bytes-per-second

B/s

Integer

Last updated