ThousandEyes for OpenTelemetry Data Model v2 - Metrics
This document describes the metrics and attributes emitted by ThousandEyes using the OpenTelemetry Data Model v2 for metrics.
Network & App Synthetics Tests
Test Type | Metrics | Specific Attributes | Common Attributes | |
HTTP server |
|
| Note: The following attributes apply to all test types in this table.
| |
Agent-to-server |
|
| ||
Agent-to-agent (unidirectional or bidirectional) |
|
| ||
BGP |
|
| ||
Transaction |
|
| ||
DNS server |
|
| ||
DNSSEC |
|
| ||
DNS trace |
|
| ||
Page load |
|
| ||
FTP server |
|
| ||
SIP server |
|
| ||
RTP stream |
|
| ||
API test |
| |||
API test per step |
|
|
Network & App Synthetics BGP Tests
Metrics
Attributes
bgp.path_changes.countbgp.reachabilitybgp.updates.count
network.prefixnetwork.as.paththousandeyes.monitor.idthousandeyes.monitor.namethousandeyes.monitor.locationthousandeyes.stream.idthousandeyes.stream.namethousandeyes.account.idthousandeyes.test.domainthousandeyes.test.idthousandeyes.test.namethousandeyes.test.typethousandeyes.data.versionthousandeyes.permalink
Endpoint Experience - Tests
Test Category | Test Type | Metrics | Specific Attributes | Common Attributes |
Scheduled | HTTP server |
|
| Note: The following attributes apply to all test types in this table.
|
Scheduled | Agent-to-server |
|
| |
Dynamic | Agent-to-server |
|
|
Endpoint Experience Local Network
Category | Metrics | Specific Attributes | Common Attributes |
DNS |
|
| Note: The following attributes apply to all categories in this table.
|
Proxy |
|
| |
Gateway |
|
| |
VPN |
|
| |
Connection |
|
| |
System |
|
|
Connected Devices
Test Type | Metrics | Specific Attributes | Common Attributes |
|
|
| Note: The following attributes apply to all test types in this table. Common resource attributes
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
Metrics
Key
Data Type
Description
http.server.request.availability
Double (Percentage)
Calculated based on the errors reported during the test. If any errors occur, the availability is 0%; otherwise, it is 100%.
http.server.request.throughput
Double (Bytes-per-second)
Average data transfer rate of the HTTP request.
http.server.request.duration
Double (Seconds)
Average time required to complete the HTTP request.
http.server.throughput
Double (Bytes-per-second)
Throughput of test in bytes per second.
http.client.request.duration
Double (Seconds)
Time to first byte (TTFB) as measured on the client.
network.latency
Double (Seconds)
Round-trip time for packets sent to the target.
network.loss
Double (Percentage)
Packet loss.
network.jitter
Double (Milliseconds)
Standard deviation of the round-trip times.
network.availability
Double (Percentage)
Calculated based on the errors reported during the test. If any errors occur, the availability is 0%; otherwise, it is 100%.
network.throughput
Double (Bytes-per-second)
Throughput of test in bytes per second.
network.device.disconnection.duration
Double (Seconds)
Duration of the device disconnection.
network.device.disconnection.packets_lost
Integer (Count)
Number of packets lost during the device disconnection.
network.device.partial_disconnection.transitions
Integer (Count)
Number of transitions into or out of a partial connectivity condition between a device and a controller.
web.transaction.duration
Double (Seconds)
The time it took the transaction to complete successfully. This metric is not reported if there are errors.
web.transaction.completion
Double (Percentage)
Percentage of transaction completion. It is 100% if the transaction completes successfully and 0% if there are errors.
web.transaction.errors.count
Integer (Count)
Indicates whether an error occurred during the transaction. Returns 1 if an error occurs, and 0 if not.
dns.lookup.availability
Double (Percentage)
Calculated depending on the errors reported during the test. If any error occurs, the availability is 0%; otherwise, it is 100%.
dns.lookup.duration
Double (Seconds)
DNS resolve time.
dns.lookup.validity
Double (Percentage)
Calculated depending on the errors reported during the test. If any error occurs, the validity is 0%; otherwise, it is 100%.
web.page_load.completion
Double (Percentage)
Percentage of page load completion. It is 100% if the page loads successfully and 0% if there are errors.
web.page_load.duration
Double (Seconds)
Time to fully load the page.
web.page_load.throughput
Double (Bytes-per-second)
Throughput of the page load in bytes per second.
web.page_load.jitter
Double (Milliseconds)
Variation in page load duration between test rounds.
ftp.server.request.availability
Double (Percentage)
Calculated depending on the errors reported during the test. If any error occurs, the availability is 0%; otherwise, it is 100%.
ftp.server.throughput
Integer (Bytes-per-second)
Throughput of test in bytes per second.
ftp.client.request.duration
Double (Seconds)
Total time it took to receive the first byte while executing the request.
sip.server.request.availability
Double (Percentage)
Calculated depending on the errors reported during the test. If any error occurs, the availability is 0%; otherwise, it is 100%.
sip.client.request.duration
Double (Seconds)
Total time it took to receive 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, calculated from the number of lost frames and the total number of frames.
rtp.client.request.discards
Double (Percentage)
Percentage of frames discarded, calculated from the number of discarded frames and the total number of frames.
rtp.client.request.duration
Double (Seconds)
Total time 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)
Indicates if BGP route target is reachable.
bgp.updates.count
Integer (Count)
Number of BGP updates.
api.duration
Double (Seconds)
The total time the 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)
Time to complete the API test step.
api.step.completion
Double (Percentage)
Percentage of API test step completion. 100% if the step is completed successfully, 0% if there are errors.
network.score
Double (Score)
Score aggregated from latency, jitter, and loss scores for Proxy, Gateway, and VPN local network probes.
network.signal.quality
Double (Percentage)
Signal quality for the current connection.
network.connection.throughput
Integer (Bytes-per-second)
Receive and transmit throughput for the active connection.
network.connection.link_speed
Integer (Bytes-per-second)
Negotiated link speed for the active connection.
network.wifi.retransmission.rate
Double (Percentage)
Percentage of transmitted Wi-Fi PHY frames that were retransmitted.
network.wifi.roaming.events.count
Integer (Count)
Number of Wi-Fi BSSID changes during the collection window.
network.wifi.channel.changes.count
Integer (Count)
Number of Wi-Fi channel changes during the collection window.
network.connection.score
Double (Score)
Overall score for the active connection.
network.signal.rssi
Double (dBm)
Received Signal Strength Indicator for the active wireless connection.
network.signal.rsrp
Double (dBm)
Reference Signal Received Power for the active wireless connection.
network.signal.rsrq
Double (dB)
Reference Signal Received Quality for the active wireless connection.
network.signal.sinr
Double (dB)
Signal-to-Interference-plus-Noise Ratio for the active wireless connection.
network.signal.rscp
Double (dBm)
Received Signal Code Power for the active wireless connection.
system.cpu.utilization
Double (Percentage)
Percentage of CPU utilization.
system.memory.utilization
Double (Percentage)
Percentage of memory utilization.
system.battery.charge
Double (Percentage)
Current battery charging level.
system.battery.health
Double (Percentage)
Current full-charge battery capacity compared to original design capacity.
system.disk.free.utilization
Double (Percentage)
Free space ratio on the disk where the OS is running.
thousandeyes.endpoint.agent.score
Double (Score)
Score aggregated from CPU and memory scores.
Attributes
The OpenTelemetry pipeline supports the following OTel attributes:
Resource Attributes
Key
Data Type
Description
Example
thousandeyes.stream.id
String
UUID of the integration used to export the data.
123e4567-e89b-12d3-a456-426614174000
thousandeyes.stream.name
String
Name of the integration used to export the data. This attribute changes when you rename the integration.
Production metrics stream
thousandeyes.account.id
String
The ID of the account that the telemetry data is associated with.
987654
thousandeyes.test.domain
String
Identifies the origin of the test data. Possible values: cea (Network & App Synthetics), endpoint (Endpoint Experience), connected-devices (Connected Devices).
cea
thousandeyes.test.id
String
Identifies the ThousandEyes test by ID number.
246810
thousandeyes.test.name
String
The name of the ThousandEyes test.
Login page check
thousandeyes.test.type
String
Identifies the type of test. Possible values:
agent-to-agentagent-to-serverdns-dnssecdns-serverdns-traceftp-serverhttp-serverpage-loadsip-serverweb-transactionsrtpbgpapidisconnectiondownload-tcppartial-disconnectionpingrealspeed-downloadrealspeed-jitterrealspeed-uploadtt-download-tcptt-upload-tcptt-udp-accelerated-downloadtt-udp-accelerated-uploadtt-udp-jitterudp-accelerated-downloadudp-accelerated-uploadupload-tcpudp-burstudp-continuous
http-server
thousandeyes.source.agent.id
String
Identifies the ThousandEyes agent that ran the test.
12345
thousandeyes.source.unit.id
String
Identifies the Connected Devices unit that generated the telemetry data.
67890
thousandeyes.source.agent.hw.type
String
The hardware type reported by the source Device Agent.
arm64, android, docker
thousandeyes.source.agent.connection.isp
String
The internet service provider (ISP) associated with the source Device Agent.
Orange
thousandeyes.source.agent.connection.package
String
The connection package or service tier reported for the source Device Agent.
1Gbps
thousandeyes.triggering.agent.id
String
Identifies the Device Agent that triggered the test.
12345
thousandeyes.source.agent.location
String
Agent location.
San Jose, CA, US
thousandeyes.source.agent.name
String
Agent name.
us-west-1a
thousandeyes.source.agent.geoname.id
String
The GeoNames ID of the ThousandEyes source agent that ran the test. For more information, see GeoNames.
5392171
thousandeyes.source.agent.geo.region.iso_code
String
ISO code for the region where the source agent is located.
US-CA
thousandeyes.source.agent.geo.country.iso_code
String
ISO code for the country where the source agent is located.
US
thousandeyes.data.version
String
Specifies the version of the data model. Possible values:
v1v2
v2
thousandeyes.permalink
String
URL for the network test instance that generated the data.
https://app.thousandeyes.com/tests/12345
server.address
String
Server domain name, if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
example.com
server.port
Integer
Server port number.
443
url.scheme
String
The URI scheme component that identifies the protocol used. Enum:
httphttps
https
http.request.method
String
HTTP request method. Enum:
GETPOSTHEADPUTDELETEOPTIONSPATCHCONNECT
GET
http.route
String
The matched route.
/api/v1/users
network.transport
String
OSI transport layer or inter-process communication method. Enum:
tcpudpicmp
tcp
thousandeyes.target.agent.id
String
Identifies the ThousandEyes agent that was the target of the test.
98765
thousandeyes.target.agent.location
String
Target agent location.
New York, NY, US
thousandeyes.target.agent.name
String
Target agent name.
nyc-edge-1
network.io.direction
String
The network IO operation direction. Enum:
transmitreceiveround-trip
round-trip
dns.question.name
String
The name being queried.
www.example.com
network.prefix
String
Specifies the BGP prefix, an IP address and subnet mask, used to identify the monitored network.
203.0.113.0/24
network.as.path
String
The AS path of the network route: a space-separated list of autonomous system numbers (ASNs) that represents the network route. The path starts with the BGP monitor (leftmost) and ends with the origin network of the prefix (rightmost).
15169 3356 64512
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.
34567
thousandeyes.monitor.name
String
The name of the BGP monitor.
Chicago, US (AS7018)
thousandeyes.monitor.location
String
The location of the BGP monitor.
Chicago, US
ftp.request.command
String
FTP request method. Enum:
GETPUTLS
GET
thousandeyes.test.step
Integer
The API step ID.
3
thousandeyes.source.agent.network.address
String
The public IP address of the source agent.
198.51.100.23
thousandeyes.source.agent.network.address_ipv4
String
The public IPv4 address of the source Device Agent.
198.51.100.23
thousandeyes.source.agent.network.address_ipv6
String
The public IPv6 address of the source Device Agent.
2001:db8::23
thousandeyes.source.agent.local.network.address
String
The local network address of the source agent.
10.0.1.25
thousandeyes.source.agent.os.type
String
The operating system type of the source agent.
Windows
thousandeyes.source.agent.serial_number
String
The serial number of the source agent host device, when available.
C02ZQ0ABC123
thousandeyes.source.agent.mac.address
String
The MAC address of the source agent.
00:1C:42:2E:60:4A
thousandeyes.source.agent.connection.type
String
Deprecated: Use network.connection.type for new integrations. ThousandEyes has not announced a removal date.
The source agent's legacy connection type. Enum:
WirelessEthernetModem
Wireless
thousandeyes.source.agent.network.org
String
The name of the network to which the source agent belongs.
Example ISP
thousandeyes.source.agent.network.as.number
String
The AS number of the source agent’s network.
15169
thousandeyes.source.agent.network.as.name
String
The AS name of the source agent’s network.
GOOGLE
vpn.vendor
String
The vendor of the VPN.
Cisco AnyConnect
client.address
String
The IP address of the client.
192.0.2.14
network.connection.type
String
Normalized connection type for the active local network interface. This attribute is reported on all Endpoint Local Network metrics. Possible values:
wifiwiredcell
wifi
network.connection.subtype
String
Normalized connection subtype for the active local network connection, such as Wi-Fi PHY mode or cellular well-known value.
lte
network.interface.name
String
Local network interface name.
en0
network.carrier.name
String
Mobile carrier name for cellular connections.
Example: vodafone UK
network.wifi.ssid
String
Wi-Fi SSID for the current connection.
GuestWiFi
network.wifi.bssid
String
Wi-Fi BSSID for the current access point.
00:11:22:aa:bb:cc
network.wifi.channel
Integer
Current Wi-Fi channel.
52
network.wifi.phy_mode
String
Wi-Fi physical mode.
802.11ax
network.wifi.access_point.vendor
String
Vendor or manufacturer of the current Wi-Fi access point.
NETGEAR
network.cellular.generation
String
Cellular network generation.
FOUR_G
network.interface.driver.model
String
NIC driver model or description for the wireless interface.
Intel(R) Wi-Fi 6E AX211 160MHz
network.interface.driver.version
String
NIC driver version for the wireless interface.
23.40.0.4
Datapoint Attributes
Key
Data Type
Description
Example
error.type
String
Describes the class of error the operation ended with.
timeout
http.response.status_code
Integer
HTTP response status code.
200
ftp.response.status_code
Integer
FTP response status code.
226
sip.response.status_code
Integer
SIP response status code.
200
target.type
String
The category of the local network, which can be one of the following:
DNSProxyGatewayVPN
DNS
marker
String
A marker represents a step within a user journey or business transaction in a Web Transaction test.
Login
detection.type
String
Method that detected a Connected Devices disconnection.
ping
transition.type
String
Transition direction for a Connected Devices partial disconnection.
connected
Tags as Attributes
ThousandEyes converts tags associated with tests and Cloud, Enterprise, and Endpoint Agents into OpenTelemetry Resource attributes. Each tag consists of a key and a corresponding value.
If a stream uses tagMatch, tagMatch selects which tests are included in the stream. It does not limit which supported tags are converted to attributes.
Tags are streamed as attributes unless the tag key is not compliant with the OpenTelemetry naming conventions for attributes or matches a ThousandEyes reserved OpenTelemetry attribute name. ThousandEyes excludes those tags from the Resource attributes.
When a tag is converted to an attribute, the tag key becomes the attribute name. Some tags might have multiple values or be shared between tests and agents. These cases are handled as follows:
Single value: If a tag key has only one value, the value is represented as
string_value.Multiple values: If there are several values for the same key, the value is represented as
array_value, with each associated value as astring_valueelement.Shared tags: If tests and Cloud, Enterprise, or Endpoint Agents are assigned to the same tag, the unique set of values is provided as the attribute value.
For more information, see Tags and OpenTelemetry Streams.
Example
Consider the following scenario:
A stream is configured with test
1234and the following tags:branch:sfobranch:nycteam:netops
The following tags are associated with test
1234:branch:sfobranch:nycteam:netopscluster:analytics
The following tags are associated with the source agent used by test
1234:branch:sfolocation:us
The resulting attributes would be structured as follows:
Notes:
The
branch:sfotag is not added twice to theResourcebecause the key-value pair already exists in the attributes.
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
dBm
dBm
Double
dB
dB
Double
Last updated