ThousandEyes for OpenTelemetry Data Model v2 - Metrics
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.latency
(Seconds)network.loss
(Percentage)network.jitter
(Milliseconds)
server.address
server.port
network.transport
error.type
Agent-to-agent
Agent-to-agent (unidirectional or bidirectional)
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
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.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)
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. If 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. If 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. If 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. If 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. If 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 OpenTelemetry 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.account.id
String
The ID of the account that the telemetry data is associated with.
thousandeyes.test.domain
String
Identifies the origin of the test data. Possible values: cea
(Cloud and Enterprise Agents), endpoint
(Endpoint Agents).
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
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:nyc
and 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'skey
.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:
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