ThousandEyes for OpenTelemetry

OpenTelemetry (OTel) is an open-source project that provides a vendor-neutral, standardized way to instrument, generate, collect, and export telemetry data for cloud-native applications. It helps developers easily incorporate observability into their services, enabling better monitoring, debugging, and optimization of their applications.

ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry.

ThousandEyes for OTel is made up of the following components:

  • Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations.

  • A set of streaming pipelines called collectors that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on you configure via the public APIs.

  • Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration.

Support

ThousandEyes for OpenTelemetry currently supports the following test types and OpenTelemetry signals and metrics:

Test type

Metrics

Signals

Agent-to-server

Latency, loss, and jitter

metrics

Agent-to-agent

Latency, loss, and jitter

metrics

BGP

Path changes, reachability, and updates

metrics

HTTP server

Availability, response time, and throughput

metrics

Web transaction

Page load time, transaction time, completion, and errors

metrics, traces

Page load

Page load time and completion

metrics, traces

FTP server

Availability, response time, and throughput

metrics

DNS server

Availability and resolution time

metrics

DNS Domain Trace

Availability and final query time

metrics

DNS DNSSEC Trace

Validity

metrics

RTP stream

MOS, loss, discards, and latency

metrics

SIP server

Availability, response time, and total time

metrics

Endpoint Agent network

Loss, latency, and jitter

metrics

Endpoint Agent HTTP

Availability, response time, and throughput

metrics

API

Time and completion

metrics

For more information about the supported test types, metrics and attributes, see ThousandEyes for OpenTelemetry Metrics.

BGP metrics are event-driven, which means that they are streamed only when there is an announcement or withdrawal of a prefix by a monitor.

Test Layers

ThousandEyes tests are composed of multiple layers (see Test Type Layers and Units for more details). When creating a test, multiple test types may be applied, depending on the configuration. For example, an HTTP server test includes metrics from the Web, Network (agent-to-server test), and BGP layers by default.

ThousandEyes for OpenTelemetry captures and sends metrics from all enabled test layers. Below is an example breakdown of the metrics for an HTTP server test:

  • Web layer: Availability, Response Time, Throughput

  • Network layer: Latency, Packet Loss, Jitter

  • BGP layer: Path Changes, Reachability, Updates

Layer Configuration

You can customize which layers are active for different test types by modifying the API request body. For instance:

  • To disable the BGP layer, set "bgpMeasurements": false in the REST API request body.

  • To disable the Network layer, set "networkMeasurements": false in the REST API request body.

Example Test Types and Layer Configuration

  • agent-to-server - Create Agent to Server test

    • Disable BGP layer: "bgpMeasurements": false

  • agent-to-agent - Create Agent to Agent test

    • Disable BGP layer: "bgpMeasurements": false

  • dns-server - Create DNS Server test

    • Disable BGP layer: "bgpMeasurements": false

  • http-server - Create HTTP Server test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • page-load - Create Page Load test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • web-transaction - Create Web Transactions test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • api - Create API test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • ftp - Create FTP Server test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • sip - Create SIP Server test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

  • rtp - Create RTP test

    • Disable BGP layer: "bgpMeasurements": false

    • Disable Network layer: "networkMeasurements": false

Limitations

  • Maximum 5 streams per account group and data model version.

  • Shared tests are not supported.

  • Traces are supported with data model v2 only.

Last updated