ThousandEyes provides a SaaS-based monitoring platform. It combines a variety of active and passive monitoring techniques to provide real-time Internet outage detection and insight into user experiences across applications and services. NS1’s integration with ThousandEyes allows teams to detect service disruptions or user experience issues with ThousandEyes monitoring, and then to automate failover in the NS1 platform.
Note
Skip this step if you are using existing ThousandEyes tests.
-
In the ThousandEyes portal, navigate to Cloud & Enterprise Agents and click Test Settings.
-
Click Add New Test.
Complete the form, ensuring no alert rules are selected.
Click Create New Test.
For more information about creating tests, refer to the ThousandEyes documentation.
In this step, you will collect the test ID for each test you want to connect to the NS1 platform.
In the ThousandEyes portal, under Cloud & Enterprise Agents in the sidebar navigation, select Views.
Under Current Test, select the test for which you’d like to send status to NS1 from the drop-down list.
-
Record (copy) the test ID from the URL. This is the last group of digits after
testid=
.
To locate the test IDs for multiple tests, NS1 recommends using the ThousandEyes API using ThousandEyes Developer Reference documentation. The following endpoint returns a list of all configured tests — including the corresponding test IDs — in a formatted JSON response.
curl https://api.thousandeyes.com/v6/tests.json -u <Username>:<basic_auth_token> | jq
where the username
and basic_auth_token
are referring to the ThousandEyes platform.
Example response:
{ "test": [ { "createdDate": "2020-06-09 23:04:51", "modifiedDate": "2020-11-21 04:53:00", "createdBy": "Test User", "modifiedBy": "ThousandEyes (support@thousandeyes.com)", "enabled": 1, "savedEvent": 0, "testId": 1386974, "testName": "DNS performance", "type": "dns-server", "interval": 120, "domain": "test.hackoeur.com A", "dnsQueryClass": "IN", "ipv6Policy": "USE_AGENT_POLICY", "networkMeasurements": 0, "mtuMeasurements": 0, "bandwidthMeasurements": 0, "bgpMeasurements": 0, "usePublicBgp": 1, "alertsEnabled": 0, "liveShare": 0, "recursiveQueries": 1, "probeMode": "AUTO", "pathTraceMode": "classic", "dnsServers": [ { "serverId": 2978, "serverName": "8.8.8.8" } ], "apiLinks": [ { "rel": "self", "href": "https://api.thousandeyes.com/v6/tests/1386974" }, { "rel": "data", "href": "https://api.thousandeyes.com/v6/dns/server/1386974" } ] },
Log into the NS1 portal, and navigate to the Integrations page, and click the + icon to create a new data source.
-
Under Pick a Source Type, click the ThousandEyes logo.
-
Enter a name for the data source for internal reference, and then click Create Data Source.
-
Click Create a new feed with this data source?.
-
Enter a name of your choice. This is for internal reference only, but NS1 recommends naming the feed something that corresponds to the associated ThousandEyes test to which it is tied.
-
Enter the ThousandEyes test ID, and then click Submit. Your browser redirects to the Incoming feeds tab.
-
Optionally, under Add a Feed to a configured data source, click on the ThousandEyes logo — repeating steps 4-6 to create a data feed for each ThousandEyes test ID you’d like to connect to the NS1 platform.
-
Under Integrations > Incoming Feeds, locate the Feeds URL associated with the ThousandEyes data source you just created. This URL was generated automatically when you created the data source.
Log into the ThousandEyes portal.
-
Navigate to Alerts > Alert Rules, and then click on Add New Alert Rule.
Select the Alert Type, and then enter a name for the rule.
-
Under the Settings tab, select the desired test(s) created and complete the remaining form fields.
-
Select the Notifications tab, and then click Edit Webhooks.
-
Click Add New Webhook on the modal. This opens another modal where you will enter the details for the new webhook.
Note
Create only one NS1 webhook within the ThousandEyes platform, and attach it to all applicable alert rules.
Enter a name for the webhook.
Enter the Feed URL corresponding to the ThousandEyes data source you created in the NS1 portal (refer to Step 3: Configure ThousandEyes as an NS1 data source.).
Next to Auth Type, select None.
Click Add New Webhook to create the new webhook. (Note that it is not yet attached to the alert rule.)
-
Back in the Add New Alert Rule modal, switch to the Notifications tab and select the webhook you just created from the drop-down menu.
Click Create New Alert Rule.
Note
You only need to create one alert with a webhook notification pointing to NS1. You can use the same alert for all tests. Each test is associated with a unique data feed created from the incoming ThousandEyes source.
In the NS1 portal, select the Zones tab from the main navigation.
-
Navigate to the record containing the answer(s) you are monitoring via ThousandEyes and then click Create/Edit Filter Chain.
-
Add the Up filter to the Filter Chain by clicking the + sign or dragging and dropping the filter.
Add other filters, as desired, and then click Save Filter Chain.
-
Back on the Record Details page, click the Up filter from the Filter Chain to reveal the unset “up” metadata tags beneath each answer. Click the tag beneath an answer to edit the up/down metadata settings. (Alternatively, you can click the icon to the right of the answer and select Edit Answer Metadata from the menu.)
-
Under the Settings column, locate the Up/down setting and click the feed icon to its right to reveal the list of available data feeds.
-
Select the corresponding ThousandEyes data feed from the list. This is the data feed that ties back to the ThousandEyes test ID for the current answer (i.e., answer).
-
Click Ok. The metadata tag appears beneath the answer with a status indicator showing whether or not the endpoint is up or down.
Repeat steps 5 through 8, connecting each ThousandEyes data feed to the relevant DNS answer.
Click Save Record.
This completes the configuration. Now, when the ThousandEyes test clears or creates an alert, the corresponding answer in the NS1 platform is set to “up” or “down” accordingly.