_
_
Back to Blog

Migrating http-browser and http-server Tests from ThousandEyes to Datadog Synthetic Tests

Migrate complex synthetic tests to Datadog while maintaining accurate monitoring and alerting
5
min read
|
by
Luis Gallego
April 23, 2025

In today’s digital-first world, maintaining high-performance and reliable user experiences is crucial for businesses to stay competitive. Synthetic monitoring, which simulates user interactions with applications and infrastructure, plays a key role in identifying issues before they impact real users. By continuously testing APIs, web pages, and server performance from various locations, businesses can proactively detect downtime, slow performance, and errors. Datadog offers powerful synthetic monitoring capabilities that seamlessly integrate with other observability features, enabling teams to track both front-end and back-end performance in real time. This unified approach ensures better visibility into the user experience and helps organizations deliver faster, more reliable services.

Understanding Synthetic Monitoring with ThousandEyes

ThousandEyes offers monitoring through:

  • Web-Transaction Tests: Simulate user interactions with web apps, measuring performance metrics like load times, success rates, and page response. These map to Datadog Browser Tests.
  • API/HTTP-Server Tests: Monitor server performance, checking for response times, availability, and overall uptime. These map to Datadog API Tests.
  • SSL Certificate Monitoring: Track SSL certificate health to avoid expired certificates and maintain secure connections. These map to SSL tests or HTTP-Checks.

Migrating Tests from ThousandEyes to Datadog

  1. Authentication
    1. To interact with both the ThousandEyes and Datadog APIs, you will need to authenticate using API tokens.
    2. ThousandEyes Authentication: Use an API key or OAuth token to authenticate and access the ThousandEyes API.
    3. Datadog Authentication: You will need an API token for authentication when making requests to the Datadog API.
  2. Gather Account Information
    1. ThousandEyes has multiple accounts within your organization. First, retrieve a full list of accounts and their account IDs using the /account-groups endpoint.
    2. Keep track of these accounts, as you will need them for future web requests to gather specific test information within the ThousandEyes API.
  3. Gather Test Information
    1. With the account ID and test ID, you can collect essential details about a test, such as the URL, retries, timeout, etc.
    2. Depending on the test type, you will interact with different endpoints.
      1. http-server-tests
      2. web-transaction-tests
  4. Mapping ThousandEyes Agents to Datadog Locations
    1. If you are using Cloud or Enterprise agents within your infrastructure for network testing, you will need to deploy equivalent agents in Datadog using Private Locations.
    2. Create a mapping structure to associate your ThousandEyes agents with Datadog’s private or public locations.

Using the Datadog API to Create Tests

Once you have gathered all the test information from ThousandEyes, the next step is to create these tests in Datadog using its API.

  1. Authentication
    1. To interact with the Datadog API, you will need an API token for authentication.
  2. Endpoints for Creating Tests
    1. Use the following Datadog API endpoints to create tests:
      1. API Tests: This endpoint can also be used for SSL tests.
      2. Browser Tests: This endpoint can be used to create browser tests

Common Considerations: SSL

When migrating tests from ThousandEyes to Datadog, you may need to create two tests if you want to monitor SSL certificate expiration. While Datadog's API and browser tests allow you to check SSL certificate validity, detailed metrics like the time remaining on the certificate can only be obtained with an SSL Test or HTTP-Check.

SSL vs. HTTP-Checks:

  • SSL Test: Use when the URL is a domain name, e.g., xyz.com.
  • HTTP-Check: Use when the URL includes a path, e.g., xyz.com/product_a, as SSL tests do not support paths.

Setting Up SSL Expiration with HTTP-Check Integration:

  • Use these attributes in your configuration:
    • check_certificate_expiration
    • days_warning & days_critical: These settings trigger alerts when the SSL certificate is within the specified number of days from expiration.
  • If you use an HTTP-Check instead of a synthetic test, you’ll need to set up a monitor for alerts. You can use:

Disclaimer: Migrating Browser Tests

When migrating browser tests from ThousandEyes to Datadog, it's important to note that ThousandEyes uses Selenium for simulating user interactions in browser tests, while Datadog does not natively support Selenium. This means that you will need to get creative with parsing and mapping Selenium scripts to Datadog’s supported actions, or manually migrate the interactions and behaviors.

In some cases, you may be able to use the Datadog API to automate the creation of the tests and configure URLs and other parameters, but the actual simulation of user interactions will likely require manual migration. You may need to rewrite or adapt the tests to fit Datadog’s browser testing capabilities, which may require additional effort and custom configurations.

Conclusion

Migrating tests, especially browser tests, can be complex. However, by following these steps and using the appropriate APIs from ThousandEyes and Datadog, you can successfully transition your synthetic tests to Datadog while maintaining accurate monitoring and alerting. At RapDev, we have extensive experience handling these migrations, and we specialize in ensuring a smooth and efficient process. If you need guidance or assistance with your migration, don't hesitate to reach out for expert support tailored to your needs!

Written by
Luis Gallego
Boston, USA
Luis lives at home in Connecticut with his beautiful three cats. You can find Luis working around his house or playing golf on his off time.