diff --git a/content/en/getting_started/synthetics/api_test.md b/content/en/getting_started/synthetics/api_test.md index 69d7d11fc1c67..b2618aea175de 100644 --- a/content/en/getting_started/synthetics/api_test.md +++ b/content/en/getting_started/synthetics/api_test.md @@ -36,32 +36,43 @@ API tests **proactively monitor** that your **most important services** are avai HTTP tests monitor your API endpoints and alert you when response latency is high or fail to meet any conditions you define, such as expected HTTP status code, response headers, or response body content. -{{< img src="getting_started/synthetics/api-test.png" alt="Overview of a Synthetics HTTP Test" style="width:100%;" >}} - -The example below demonstrates how to create an [HTTP test][3], a subtype of [single API tests][1]. - -### Define request +The examples below demonstrate how to create an [HTTP test][3], a subtype of [single API tests][1]. 1. In the Datadog site, hover over **Digital Experience** and select **[Tests][4]** (under **Synthetic Monitoring & Testing**). + 2. Click **New Test** > **[New API test][5]**. -3. Select the `HTTP` request type. -4. Define your request: - - Add the URL of the endpoint you want to monitor. If you don't know what to start with, you can use `https://www.shopist.io/`, a test e-commerce web application. Defining the endpoint to test automatically populates the name of your test to `Test on www.shopist.io`. - - You can select **Advanced Options** to set custom request options, certificates, authentication credentials, and more. - - **Note:** You can create secure [global variables][6] to store credentials and create [local variables][7] to generate dynamic timestamps to use in your request payload. After creating these variables, type `{{` in any relevant field and select the variable to inject its value in your test options. - - In this example, no specific advanced option is needed. - - You can set tags such as `env:prod` and `app:shopist` on your test. Tags allow you to keep your test suite organized and quickly find tests you're interested in on the homepage. +3. You may create a test using one of the following options: + + - **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ + {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} + + - **Build a test from scratch**: + + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `HTTP` request type. + + 2. Add the URL of the endpoint you want to monitor. If you don't know what to start with, you can use `https://www.shopist.io/`, a test e-commerce web application. If you use the test Shopist URL, the name of your test is automatically populated as `Test on shopist.io`. + + 3. Optionally, select **Advanced Options** to set custom request options, add certificates and authentication credentials, and create secure [global variables][6] or [local variables][7] for dynamic inputs. + + **Note**: Type `{{` in any relevant field to select a variable and inject its value into your test options. + + 4. Optionally, set tags such as `env:prod` and `app:shopist` on your test. Tags allow you to keep your test suite organized and quickly find tests you're interested in on the homepage. + + 5. Click **Send** to trigger a sample test run. -5. Click **Test URL** to trigger a sample test run. + {{< img src="getting_started/synthetics/api-test-config-4.png" alt="API test configuration" style="width:90%;">}} -{{< img src="getting_started/synthetics/api-test-config-3.png" alt="API test configuration" style="width:100%;">}} + 6. Click **Create Test** to submit your API test. ### Define assertions -Clicking **Test URL** automatically populates basic assertions about your endpoint's response. Assertions define what a successful test run is. +Clicking **Send** automatically populates basic assertions about your endpoint's response. Assertions define what a successful test run is. In this example, three default assertions populate after triggering the sample test run: diff --git a/content/en/getting_started/synthetics/browser_test.md b/content/en/getting_started/synthetics/browser_test.md index 034e399430a10..9af2d8192061e 100644 --- a/content/en/getting_started/synthetics/browser_test.md +++ b/content/en/getting_started/synthetics/browser_test.md @@ -24,30 +24,37 @@ further_reading: ## Overview -[Browser tests][1] are scenarios that Datadog executes on your web applications. You can configure periodic intervals to run tests from multiple locations, devices, and browsers as well as execute them from your CI/CD pipelines. - -{{< img src="getting_started/synthetics/browser-test-overview.png" alt="Overview of a Synthetics Browser Test" style="width:100%;" >}} - -These tests verify that your users can perform **key business transactions** on your applications and that they are not negatively impacted by recent code changes. +[Browser tests][1] are scenarios that Datadog executes on your web applications. You can configure periodic intervals to run tests from multiple locations, devices, and browsers as well as execute them from your CI/CD pipelines. These tests verify that your users can perform **key business transactions** on your applications and that they are not negatively impacted by recent code changes. ## Create a browser test The example below demonstrates the creation of a browser test that maps a user's journey from adding an item to a cart to successfully checking out. -{{< img src="getting_started/synthetics/browser-test-1.png" alt="Browser test mapping out a user journey" style="width:100%;" >}} ### Configure your test details 1. In the Datadog site, hover over **Digital Experience** in the left hand menu and select **[Tests][2]** (under **Synthetic Monitoring & Testing**). 2. In the top right corner, click **New Test** > **[Browser Test][3]**. -3. Define your browser test: - - Add the URL of the website you want to monitor. If you don't know what to start with, you can use `https://www.shopist.io`, a test e-commerce web application. - - Select **Advanced Options** to set custom request options, certificates, authentication credentials, and more. - In this example, no specific advanced option is needed. - - Name your test and set tags to it such as `env:prod` and `app:shopist`. Tags allow you to keep your test suite organized and quickly find tests you're interested in on the homepage. - - Choose the browsers and devices you want to test with. +You may create a test using one of the following options: + +- **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Alert Conditions, Steps, and optionally Variables. + 2. Click **+Create Test** to open the configuration page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save & Quit** in the upper right hand corner to submit your Browser Test.

+ + {{< img src="/synthetics/browser_tests/synthetics_templates_browser.mp4" alt="Video of Synthetics Browser Test landing page with templates" video="true" >}} + +- **Build a test from scratch**: + + 1. Click the **+** template to start a new Browser Test from scratch. + 1. Add the URL of the website you want to monitor. If you don't know what to start with, you can use `https://www.shopist.io`, a test e-commerce web application. + 2. Select **Advanced Options** to set custom request options, certificates, authentication credentials, and more. + 3. Name your test and set tags to it such as `env:prod` and `app:shopist`. Tags allow you to keep your test suite organized and quickly find tests you're interested in on the homepage. + 4. Choose the browsers and devices you want to test with. + 5. Click **Save & Edit Recording** to submit your Browser Test. -### Select locations +### Select locations Select one or more **Managed Locations** or **Private Locations** to run your test from. @@ -55,13 +62,13 @@ Managed locations allow you to test public-facing websites and endpoints. To tes The Shopist application is publicly available at `https://www.shopist.io/`, so you can pick any managed locations to execute your test from. -### Specify test frequency +### Specify test frequency Select the frequency at which you want your test to execute. You can leave the default frequency of 1 hour. In addition to running your Synthetic test on a schedule, you can trigger them manually or directly from your [CI/CD pipelines][5]. -### Define alert conditions +### Define alert conditions You can define alert conditions to ensure your test does not trigger for things like a sporadic network blip, so that you only get alerted in case of real issues with your application. @@ -77,7 +84,7 @@ You can also configure your test to only trigger a notification when your applic An alert is triggered if your test fails for 3 minutes from any 2 of 13 locations ``` -### Configure the test monitor +### Configure the test monitor Design your alert message and add an email address you want your test to send alerts to. diff --git a/content/en/synthetics/api_tests/dns_tests.md b/content/en/synthetics/api_tests/dns_tests.md index cffa2daa4f42c..e54493205b7ad 100644 --- a/content/en/synthetics/api_tests/dns_tests.md +++ b/content/en/synthetics/api_tests/dns_tests.md @@ -35,20 +35,30 @@ DNS tests can run from both [managed](#select-locations) and [private locations] ## Configuration -After choosing to create a `DNS` test, define your test's request. - -### Define request - -1. Specify the **Domain** you want your test to query. For example, `www.example.com`. -2. Specify the **DNS Server** to use (optional), it can be a domain name or an IP address. If not specified, your DNS test performs resolution using `8.8.8.8`, with a fallback on `1.1.1.1` and an internal AWS DNS server. -3. Specify your DNS Server **Port** (optional). If not specified, the DNS Server port defaults to 53. -4. Specify the amount of time in seconds before the test times out (optional). -5. **Name** your DNS test. -6. Add `env` **Tags** as well as any other tag to your DNS test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. - -{{< img src="synthetics/api_tests/dns_test_config_new.png" alt="Define DNS query" style="width:90%;" >}} - -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. +You may create a test using one of the following options: + +- **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ + {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} + +- **Build a test from scratch**: + + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the DNS request type. + 1. Specify the **Domain** you want your test to query. For example, `www.example.com`. + 1. Specify the **DNS Server** to use (optional), it can be a domain name or an IP address. If not specified, your DNS test performs resolution using `8.8.8.8`, with a fallback on `1.1.1.1` and an internal AWS DNS server. + 1. Specify your DNS Server **Port** (optional). If not specified, the DNS Server port defaults to 53. + 1. Specify the amount of time in seconds before the test times out (optional). + 1. **Name** your DNS test. + 1. Add Environment **Tags** as well as any other tag to your DNS test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Click **Test Domain** to try out the request configuration. A response preview is displayed on the right side of your screen.

+ + {{< img src="synthetics/api_tests/synthetics_dns_test_domain.png" alt="Define DNS query" style="width:90%;" >}} + + 1. Click **Create Test** to submit your API test. ### Snippets diff --git a/content/en/synthetics/api_tests/grpc_tests.md b/content/en/synthetics/api_tests/grpc_tests.md index eb3161c806231..7d857cf42e03d 100644 --- a/content/en/synthetics/api_tests/grpc_tests.md +++ b/content/en/synthetics/api_tests/grpc_tests.md @@ -38,68 +38,75 @@ Health Checks gRPC tests can run from both [managed](#select-locations) and [private locations][2] depending on your preference for running the test from outside or inside your network. gRPC tests can run on a schedule, on-demand, or directly within your [CI/CD pipelines][3]. -## Configuration +## Configuration -After choosing to create a `gRPC` test, define your test's request. +You may create a test using one of the following options: -### Define request + - **Create a test from a template**: -1. Specify the **Host** and **Port** to run your test on. The default gRPC port is `50051`. -2. Select **Behavior Check** to perform a unary call or **Health Check** to perform a health check. - - {{< tabs >}} - {{% tab "Behavior Check" %}} + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} - For a behavior check, specify the **Server Reflection** or [upload a **Proto File**][101] that defines your gRPC server. Select a method and include a request message. Datadog does not support streaming methods. - -{{< img src="synthetics/api_tests/grpc_behavior_check_test.png" alt="Define gRPC request" style="width:90%;" >}} - - [101]: https://grpc.io/docs/what-is-grpc/introduction/#working-with-protocol-buffers + - **Build a test from scratch**: - {{% /tab %}} - {{% tab "Health Check" %}} + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `gRPC` request type. + 2. Specify the **Host** and **Port** to run your test on. The default gRPC port is `50051`. + 3. Select **Behavior Check** to perform a unary call or **Health Check** to perform a health check.

- For a health check, enter the name of the service. Leave this field blank if you want to send a health check on the gRPC server. + {{< tabs >}} + {{% tab "Behavior Check" %}} -{{< img src="synthetics/api_tests/grpc_health_check_test.png" alt="Define gRPC request" style="width:90%;" >}} - - {{% /tab %}} - {{< /tabs >}} +For a behavior check, specify the **Server Reflection** or [upload a **Proto File**][101] that defines your gRPC server. Select a method and include a request message. Datadog does not support streaming methods.

-3. Add **Advanced Options** (optional) to your test: +{{< img src="synthetics/api_tests/grpc_behavior_check_test_2.png" alt="Define gRPC request" style="width:90%;" >}} - {{< tabs >}} +[101]: https://grpc.io/docs/what-is-grpc/introduction/#working-with-protocol-buffers - {{% tab "Request Options" %}} - - * **Timeout**: Specify the amount of time in seconds before the test times out. - * **Ignore server certificate error**: Select to have your gRPC test go on with connection even if there are errors when validating the SSL certificate. - * **gRPC metadata**: Add and define metadata to your gRPC request to pass metadata between services. + {{% /tab %}} + {{% tab "Health Check" %}} - {{% /tab %}} +For a health check, enter the name of the service. Leave this field blank if you want to send a health check on the gRPC server.

- {{% tab "Authentication" %}} +{{< img src="synthetics/api_tests/grpc_health_check_test_2.png" alt="Define gRPC request" style="width:90%;" >}} - * **Client certificate**: Authenticate through mTLS by uploading your client certificate (`.crt`) and the associated private key (`.key`) in `PEM` format. + {{% /tab %}} + {{< /tabs >}} -
- - You can use the `openssl` library to convert your certificates. For example, convert a `PKCS12` certificate to `PEM` formatted private keys and certificates. + 4. Add **Advanced Options** (optional) to your test: - ``` - openssl pkcs12 -in .p12 -out .key -nodes -nocerts - openssl pkcs12 -in .p12 -out .cert -nokeys - ``` + {{< tabs >}} + {{% tab "Request Options" %}} - {{% /tab %}} +- **Time out**: Specify the amount of time in seconds before the test times out. +- **Ignore server certificate error**: Select to have your gRPC test go on with connection even if there are errors when validating the SSL certificate. +- **gRPC metadata**: Add and define metadata to your gRPC request to pass metadata between services. - {{< /tabs >}} + {{% /tab %}} + {{% tab "Authentication" %}} -3. **Name** your gRPC test. +- **Client certificate**: Authenticate through mTLS by uploading your client certificate (`.crt`) and the associated private key (`.key`) in `PEM` format. -4. Add `env` **Tags** as well as any other tag to your gRPC test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][4]. +
-Click **Send** to try out the request configuration. A response preview is displayed on the right side of your screen. +You can use the `openssl` library to convert your certificates. For example, convert a `PKCS12` certificate to `PEM` formatted private keys and certificates. + +```bash + openssl pkcs12 -in .p12 -out .key -nodes -nocerts + openssl pkcs12 -in .p12 -out .cert -nokeys +``` + + {{% /tab %}} + {{< /tabs >}} + + 5. **Name** your gRPC test. + + 6. Add Environment **Tags** as well as any other tags to your gRPC test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][4]. + + 7. Click **Invoke** to try out the request configuration. A response preview is displayed on the right side of your screen. + + 8. Click **Create Test** to submit your API test. ### Snippets diff --git a/content/en/synthetics/api_tests/http_tests.md b/content/en/synthetics/api_tests/http_tests.md index 1145e77acc472..bd8d6a4c3a281 100644 --- a/content/en/synthetics/api_tests/http_tests.md +++ b/content/en/synthetics/api_tests/http_tests.md @@ -38,21 +38,32 @@ HTTP tests can run from both [managed](#select-locations) and [private locations ## Configuration -After choosing to create an `HTTP` test, define your test's request. +You may create a test using one of the following options: -### Define request + - **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ + {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} -1. Choose the **HTTP Method** and specify the **URL** to query. Available methods are: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE`, and `OPTIONS`. Both `http` and `https` URLs are supported. + - **Build a test from scratch**: + + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `HTTP` request type and specify the **URL** to query. + Available methods are: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE`, and `OPTIONS`. Both `http` and `https` URLs are supported. -
See Advanced options for more options.
+
See Advanced options for more options.
-2. **Name** your HTTP test. + 2. **Name** your HTTP test. -3. Add `env` **Tags** as well as any other tag to your HTTP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 3. Add Environment **Tags** as well as any other tag to your HTTP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + + 4. Click **Send** to try out the request configuration. A response preview is displayed on the right side of your screen.

- {{< img src="synthetics/api_tests/http_test_config.png" alt="Define HTTP request" style="width:90%;" >}} + {{< img src="getting_started/synthetics/api-test-config-4.png" alt="Define HTTP request" style="width:90%;" >}} -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. + 5. Click **Create Test** to submit your API test. ### Snippets diff --git a/content/en/synthetics/api_tests/icmp_tests.md b/content/en/synthetics/api_tests/icmp_tests.md index 39d5186cf8536..417e49032f293 100644 --- a/content/en/synthetics/api_tests/icmp_tests.md +++ b/content/en/synthetics/api_tests/icmp_tests.md @@ -32,19 +32,30 @@ ICMP tests can run from both [managed](#select-locations) and [private locations ## Configuration -After choosing to create an `ICMP` test, define your test's request. +You may create a test using one of the following options: -### Define request + - **Create a test from a template**: -1. Specify the **Domain Name** or **IP address** to run your test on. -2. Select or deselect **Track number of network hops (TTL)**. When selected, this option turns on a "traceroute" probe to discover all gateways along the path to the host destination. -3. Select the **Number of Pings** to trigger per test session. By default, the number of pings is set to four. You can choose to decrease this number or increase it up to ten. -4. **Name** your ICMP test. -5. Add `env` **Tags** as well as any other tags to your ICMP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} -{{< img src="synthetics/api_tests/icmp_test_config.png" alt="Define ICMP request" style="width:90%;" >}} + - **Build a test from scratch**: -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `ICMP` request type. + 1. Specify the **Domain Name** or **IP address** to run your test on. + 1. Select or deselect **Track number of network hops (TTL)**. When selected, this option turns on a "traceroute" probe to discover all gateways along the path to the host destination. + 1. Select the **Number of Pings** to trigger per test session. By default, the number of pings is set to four. You can choose to decrease this number or increase it up to ten. + 1. **Name** your ICMP test. + 1. Add Environment **Tags** as well as any other tags to your ICMP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Click **Test Host** to try out the request configuration. A response preview is displayed on the right side of your screen.

+ + {{< img src="synthetics/api_tests/icmp_test_config_2.png" alt="Define ICMP request" style="width:90%;" >}} + 8. Click **Create Test** to submit your API test. + + + ### Snippets diff --git a/content/en/synthetics/api_tests/ssl_tests.md b/content/en/synthetics/api_tests/ssl_tests.md index 56b64489c166e..b7aafae2061ed 100644 --- a/content/en/synthetics/api_tests/ssl_tests.md +++ b/content/en/synthetics/api_tests/ssl_tests.md @@ -32,32 +32,43 @@ SSL tests can run from both [managed](#select-locations) and [private locations] ## Configuration -After choosing to create a `SSL` test, define your test's request. +You may create a test using one of the following options: -### Define request - -1. Specify the **Host** and the **Port** to run your test on. The default SSL port is `443`. -2. Add **Advanced Options** (optional) to your test: - * **Accept self-signed certificates**: Bypasses any server error related to a self-signed certificate. - * **Fail on revoked certificate in stapled OCSP**: Fail the test if the certificate is labeled as revoked by the OCSP stapling. - * **Timeout**: Specify the amount of time in seconds before the test times out. - * **Server Name**: Specifies on which server you want to initiate the TLS handshake, allowing the server to present one of multiple possible certificates on the same IP address and TCP port number. By default, the parameter is filled by the **Host** value. - * **Client certificate**: Authenticate through mTLS by uploading your client certificate (`.crt`) and the associated private key (`.key`) in `PEM` format. +- **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} + +- **Build a test from scratch**: + + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the SSL request type. + 1. Specify the **Host** and the **Port** to run your test on. The default SSL port is `443`. + 1. Add **Advanced Options** (optional) to your test: + * **Accept self-signed certificates**: Bypasses any server error related to a self-signed certificate. + * **Fail on revoked certificate in stapled OCSP**: Fail the test if the certificate is labeled as revoked by the OCSP stapling. + * **Timeout**: Specify the amount of time in seconds before the test times out. + * **Server Name**: Specifies on which server you want to initiate the TLS handshake, allowing the server to present one of multiple possible certificates on the same IP address and TCP port number. By default, the parameter is filled by the **Host** value. + * **Client certificate**: Authenticate through mTLS by uploading your client certificate (`.crt`) and the associated private key (`.key`) in `PEM` format. - You can use the `openssl` library to convert your certificates. For example, convert a `PKCS12` certificate to `PEM` formatted private keys and certificates. + You can use the `openssl` library to convert your certificates. For example, convert a `PKCS12` certificate to `PEM` formatted private keys and certificates. - ``` - openssl pkcs12 -in .p12 -out .key -nodes -nocerts - openssl pkcs12 -in .p12 -out .cert -nokeys - ``` + ``` + openssl pkcs12 -in .p12 -out .key -nodes -nocerts + openssl pkcs12 -in .p12 -out .cert -nokeys + ``` -3. **Name** your SSL test. + 1. **Name** your SSL test. -4. Add `env` **Tags** as well as any other tag to your SSL test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Add Environment **Tags** as well as any other tag to your SSL test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Click **Test Certificate** to try out the request configuration. A response preview is displayed on the right side of your screen.

- {{< img src="synthetics/api_tests/ssl_test_config.png" alt="Define SSL request" style="width:90%;" >}} + {{< img src="synthetics/api_tests/synthetics_ssl_test_cert.png" alt="Define SSL request" style="width:90%;" >}} -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. + 1. Click **Create Test** to submit your API test. + + ### Snippets diff --git a/content/en/synthetics/api_tests/tcp_tests.md b/content/en/synthetics/api_tests/tcp_tests.md index 9a8baf961466d..3afebe187618a 100644 --- a/content/en/synthetics/api_tests/tcp_tests.md +++ b/content/en/synthetics/api_tests/tcp_tests.md @@ -32,19 +32,29 @@ TCP tests can run from both [managed](#select-locations) and [private locations] ## Configuration -After choosing to create a `TCP` test, define your test's request. +You may create a test using one of the following options: -### Define request +- **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} -1. Specify the **Host** and the **Port** to run your test on. -2. Decide whether or not to **Track number of network hops (TTL)**. This option allows you to assert on the number of network hops and to have access to a TCP Traceroute in your test results. -3. Specify the amount of time in seconds before the test times out (optional). -4. **Name** your TCP test. -5. Add `env` **Tags** as well as any other tag to your TCP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. +- **Build a test from scratch**: -{{< img src="synthetics/api_tests/tcp_test_config.png" alt="Define TCP connection" style="width:90%;" >}} + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `TCP` request type. + 1. Specify the **Host** and the **Port** to run your test on. + 1. Decide whether or not to **Track number of network hops (TTL)**. This option allows you to assert on the number of network hops and to have access to a TCP Traceroute in your test results. + 1. Specify the amount of time in seconds before the test times out (optional). + 1. **Name** your TCP test. + 1. Add Environment **Tags** as well as any other tag to your TCP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Click **Test Host** to try out the request configuration. A response preview is displayed on the right side of your screen.

+ + {{< img src="synthetics/api_tests/tcp_test_config_2.png" alt="Define TCP connection" style="width:90%;" >}} + + 8. Click **Create Test** to submit your API test. -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. ### Snippets diff --git a/content/en/synthetics/api_tests/udp_tests.md b/content/en/synthetics/api_tests/udp_tests.md index 7de3d8076a37b..20000f98ead46 100644 --- a/content/en/synthetics/api_tests/udp_tests.md +++ b/content/en/synthetics/api_tests/udp_tests.md @@ -30,19 +30,28 @@ UDP tests can run from both [managed](#select-locations) and [private locations] ## Configuration -After choosing to create an `UDP` Test, define your test's request. +You may create a test using one of the following options: -### Define request + - **Create a test from a template**: -1. Specify the **Host** and **Port** to run your test on. -2. Enter the string you want to send in your test. -3. Specify the amount of time in seconds before the test times out (optional). -4. **Name** your UDP test. -5. Add `env` **Tags** as well as any other tag to your UDP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} -{{< img src="synthetics/api_tests/udp_test_config.png" alt="Define UDP request" style="width:90%;" >}} + - **Build a test from scratch**: -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `UDP` request type. + 1. Specify the **Host** and **Port** to run your test on. + 1. Enter the string you want to send in your test. + 1. Specify the amount of time in seconds before the test times out (optional). + 1. **Name** your UDP test. + 1. Add Environment **Tags** as well as any other tag to your UDP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 1. Click **Test Host** to try out the request configuration. A response preview is displayed on the right side of your screen.

+ + {{< img src="synthetics/api_tests/udp_test_config_2.png" alt="Define UDP request" style="width:90%;" >}} + + 8. Click **Create Test** to submit your API test. ### Snippets diff --git a/content/en/synthetics/api_tests/websocket_tests.md b/content/en/synthetics/api_tests/websocket_tests.md index b55374accdaed..43a663a1e308b 100644 --- a/content/en/synthetics/api_tests/websocket_tests.md +++ b/content/en/synthetics/api_tests/websocket_tests.md @@ -29,13 +29,21 @@ WebSocket tests can run from both [managed](#select-locations) and [private loca ## Configuration -After choosing to create an `WebSocket` test, define your test's request. +You may create a test using one of the following options: -### Define request +- **Create a test from a template**: + + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Assertions, Alert Conditions, and Monitor Settings. + 2. Click **+Create Test** to open the **Define Request** page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save Details** to submit your API test.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video of Synthetics API test landing page with templates" video="true" >}} -1. Specify the **URL** to run your test on. -2. Enter the string you want to send in your test. -3. Add **Advanced Options** (optional) to your test: +- **Build a test from scratch**: + + 1. To build a test from scratch, click the **+ Start from scratch** template, then select the `WebSocket` request type. + 1. Specify the **URL** to run your test on. + 1. Enter the string you want to send in your test. + 1. Add **Advanced Options** (optional) to your test:

{{< tabs >}} @@ -54,14 +62,15 @@ After choosing to create an `WebSocket` test, define your test's request. {{< /tabs >}} -
+
-4. **Name** your WebSocket test. -5. Add `env` **Tags** as well as any other tag to your WebSocket test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 5. **Name** your WebSocket test. + 6. Add Environment **Tags** as well as any other tag to your WebSocket test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 7. Click **Send** to try out the request configuration. A response preview is displayed on the right side of your screen. -{{< img src="synthetics/api_tests/websocket_test_config.png" alt="Define WebSocket request" style="width:90%;" >}} + {{< img src="synthetics/api_tests/websocket_test_config_2.png" alt="Define WebSocket request" style="width:90%;" >}} -Click **Test URL** to try out the request configuration. A response preview is displayed on the right side of your screen. + 8. Click **Create Test** to submit your API test. ### Snippets diff --git a/content/en/synthetics/browser_tests/_index.md b/content/en/synthetics/browser_tests/_index.md index 574fcfa7655b2..085b2ad80b5fb 100644 --- a/content/en/synthetics/browser_tests/_index.md +++ b/content/en/synthetics/browser_tests/_index.md @@ -33,25 +33,38 @@ Browser tests are scenarios executed by Datadog on your web applications. They r ## Test configuration -Define the configuration of your browser test. +You may create a test using one of the following options: -1. Enter a **Starting URL**: The URL from which your browser test starts the scenario. +- **Create a test from a template**: -
See Advanced options for more options.
+ 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Alert Conditions, Steps, and optionally Variables. + 2. Click **+Create Test** to open the configuration page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save & Quit** in the upper right hand corner to submit your Browser Test.

+ {{< img src="/synthetics/browser_tests/synthetics_templates_browser.mp4" alt="Video of Synthetics Browser Test landing page with templates" video="true" >}} -2. Add a **name**: The name of your browser test. -3. Select **environment and additional tags**: Set the `env` and related tags attached to your browser test. Use the `:` format to filter on a `` for a given ``. -4. Select **browsers and devices**: The browsers (such as `Chrome`, `Firefox`, and `Edge`), and devices (such as `Laptop Large`, `Tablet`, and `Mobile Small`) to run your test on. - - For a large laptop device, the dimensions are 1440 pixels x 1100 pixels. - - For a tablet device, the dimensions are 768 pixels x 1020 pixels. - - For a small mobile device, the dimensions are 320 pixels x 550 pixels. -5. Select **managed and private locations**: Select locations around the world that are managed by Datadog or create [private locations][1] to run your browser test from custom locations or inside private networks. +- **Build a test from scratch**: + + 1. Click the **+** template to start a new Browser Test from scratch. + 1. Enter a **Starting URL**: The URL from which your browser test starts the scenario. + 1. Add a **name**: The name of your browser test. + 1. Select **environment and additional tags**: Set the `env` and related tags attached to your browser test. Use the `:` format to filter on a `` for a given ``. - {{% managed-locations %}} +
See Advanced options for more options.
- You can also use the [Continuous Testing Tunnel][2] to trigger tests on your local development setup or in your CI/CD pipeline to test internal environments. + 1. Select **browsers and devices**: The browsers (such as `Chrome`, `Firefox`, and `Edge`), and devices (such as `Laptop Large`, `Tablet`, and `Mobile Small`) to run your test on. -6. Set the **test frequency**: The intervals vary from every five minutes to once per week. To request one-minute frequency, [contact Support][3]. + - For a large laptop device, the dimensions are 1440 pixels x 1100 pixels. + - For a tablet device, the dimensions are 768 pixels x 1020 pixels. + - For a small mobile device, the dimensions are 320 pixels x 550 pixels. + + 1. Select **managed and private locations**: Select from a list of locations around the world that are managed by Datadog, or create [private locations][1] to run your browser test from custom locations or inside private networks.

+ + {{% managed-locations %}} + + You can also use the [Continuous Testing Tunnel][2] to trigger tests on your local development setup or in your CI/CD pipeline to test internal environments.

+ + 6. Set the **test frequency**: The intervals vary from every five minutes to once per week. To request one-minute frequency, [contact Support][3]. + 7. Click **Save & Edit Recording** to submit your Browser Test. ### Snippets diff --git a/content/en/synthetics/mobile_app_testing/_index.md b/content/en/synthetics/mobile_app_testing/_index.md index e29ab437a0ffc..c008c4b063cce 100644 --- a/content/en/synthetics/mobile_app_testing/_index.md +++ b/content/en/synthetics/mobile_app_testing/_index.md @@ -36,26 +36,28 @@ You can create mobile app tests in Datadog by navigating to [**Digital Experienc {{< img src="mobile_app_testing/new_test_2.png" alt="Create a Synthetic Mobile Test" style="width:50%;">}} -### Flakiness +## Configuration -Flakiness is a pain point in end-to-end testing. Test failures are occasionally caused by valid frontend code changes that impact an identifier, not by an actual application issue. +You may create a test using one of the following options: -To prevent flaky tests, Datadog uses an algorithm that leverages a set of locators to target elements in mobile app tests. A small change in the UI may modify an element (for example, moving it to another location). The mobile app test automatically locates the element again based on points of reference that are not affected by the change. +- **Create a test from a template**: -When the test runs successfully, the mobile app test recomputes (or "self heals") any broken locators with updated values. This ensures your tests do not break from simple UI updates and your tests are automatically adapting to your mobile application's UI. + 1. Hover over one of the pre-populated templates and click **View Template**. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Alert Conditions, and Steps. + 2. Click **+Create Test** to open the configuration page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch. + 3. Click **Save & Quit** in the upper right hand corner to submit your Mobile Application Test.

+ {{< img src="/mobile_app_testing/templates_mobile_app.mp4" alt="Video of Mobile Application test landing page with templates" video="true" >}} -## Configuration - -Define the configuration of your mobile app test. +- **Build a test from scratch**: -1. Select a mobile application from the dropdown menu. If you haven't created one already, create a mobile application in the [Applications List section][2] on the [Synthetic Monitoring & Continuous Testing Settings page][3]. -2. Select a **version** or click **Always run the latest version** to use the latest version of your mobile application whenever your test is run. -3. Add a **name** for your test. -4. Select **environment and additional tags** that relate to your test. Use the `:` format to filter on a `` for a given ``. -4. Select the **devices** to run your test on. -5. Set retry conditions for your test. -6. Set the **test frequency** by clicking on basic time intervals or customizing your test frequency and **alert conditions** for your test monitor. -7. Enter a name for the test monitor, select a service or team member to notify, and add a message notification. + 1. Click the **+** template, then select a mobile application from the dropdown menu. If you haven't created one already, create a mobile application in the [Applications List section][2] on the [Synthetic Monitoring & Continuous Testing Settings page][3]. + 1. Select a **version** or click **Always run the latest version** to use the latest version of your mobile application whenever your test is run. + 1. Add a **name** for your test. + 1. Select **environment and additional tags** that relate to your test. Use the `:` format to filter on a `` for a given ``. + 1. Select the **devices** to run your test on. + 1. Set retry conditions for your test. + 1. Set the **test frequency** by clicking on basic time intervals or customizing your test frequency and **alert conditions** for your test monitor. + 1. Enter a name for the test monitor, select a service or team member to notify, and add a message notification. + 1. Click **Save & Edit Recording** to submit your Mobile Application Test. ### Snippets @@ -131,6 +133,14 @@ A notification is sent according to the set of alerting conditions. Use this sec For more information, see [Using Synthetic Test Monitors][7]. +## Flakiness + +Flakiness is a pain point in end-to-end testing. Test failures are occasionally caused by valid frontend code changes that impact an identifier, not by an actual application issue. + +To prevent flaky tests, Datadog uses an algorithm that leverages a set of locators to target elements in mobile app tests. A small change in the UI may modify an element (for example, moving it to another location). The mobile app test automatically locates the element again based on points of reference that are not affected by the change. + +When the test runs successfully, the mobile app test recomputes (or "self heals") any broken locators with updated values. This ensures your tests do not break from simple UI updates and your tests are automatically adapting to your mobile application's UI. + ## Run tests in CI You can run mobile app tests in a CI pipeline by defining the `mobileApplicationVersionFilePath` option in a [test `synthetics.json` file][13] and a [global configuration `synthetics-ci.config` file][14] as needed. Global configuration file options take precedence over test configuration file options. diff --git a/static/images/getting_started/synthetics/api-test-config-4.png b/static/images/getting_started/synthetics/api-test-config-4.png new file mode 100644 index 0000000000000..4023395d47dc1 Binary files /dev/null and b/static/images/getting_started/synthetics/api-test-config-4.png differ diff --git a/static/images/getting_started/synthetics/synthetics_api_templates.png b/static/images/getting_started/synthetics/synthetics_api_templates.png new file mode 100644 index 0000000000000..47fd5e94e1ca9 Binary files /dev/null and b/static/images/getting_started/synthetics/synthetics_api_templates.png differ diff --git a/static/images/getting_started/synthetics/synthetics_browser_templates.png b/static/images/getting_started/synthetics/synthetics_browser_templates.png new file mode 100644 index 0000000000000..40e2418136e99 Binary files /dev/null and b/static/images/getting_started/synthetics/synthetics_browser_templates.png differ diff --git a/static/images/getting_started/synthetics/synthetics_templates_api_video.mp4 b/static/images/getting_started/synthetics/synthetics_templates_api_video.mp4 new file mode 100644 index 0000000000000..abc779e343eb7 Binary files /dev/null and b/static/images/getting_started/synthetics/synthetics_templates_api_video.mp4 differ diff --git a/static/images/mobile_app_testing/mobile_app_templates.png b/static/images/mobile_app_testing/mobile_app_templates.png new file mode 100644 index 0000000000000..d51ea9f42dce2 Binary files /dev/null and b/static/images/mobile_app_testing/mobile_app_templates.png differ diff --git a/static/images/mobile_app_testing/templates_mobile_app.mp4 b/static/images/mobile_app_testing/templates_mobile_app.mp4 new file mode 100644 index 0000000000000..f3cdfab983fe7 Binary files /dev/null and b/static/images/mobile_app_testing/templates_mobile_app.mp4 differ diff --git a/static/images/synthetics/api_tests/grpc_behavior_check_test_2.png b/static/images/synthetics/api_tests/grpc_behavior_check_test_2.png new file mode 100644 index 0000000000000..a4eaf1572b23a Binary files /dev/null and b/static/images/synthetics/api_tests/grpc_behavior_check_test_2.png differ diff --git a/static/images/synthetics/api_tests/grpc_health_check_test_2.png b/static/images/synthetics/api_tests/grpc_health_check_test_2.png new file mode 100644 index 0000000000000..da16e00593b39 Binary files /dev/null and b/static/images/synthetics/api_tests/grpc_health_check_test_2.png differ diff --git a/static/images/synthetics/api_tests/icmp_test_config_2.png b/static/images/synthetics/api_tests/icmp_test_config_2.png new file mode 100644 index 0000000000000..c5c85ce2f9cd5 Binary files /dev/null and b/static/images/synthetics/api_tests/icmp_test_config_2.png differ diff --git a/static/images/synthetics/api_tests/synthetics_dns_test_domain.png b/static/images/synthetics/api_tests/synthetics_dns_test_domain.png new file mode 100644 index 0000000000000..8283a55df42fd Binary files /dev/null and b/static/images/synthetics/api_tests/synthetics_dns_test_domain.png differ diff --git a/static/images/synthetics/api_tests/synthetics_ssl_test_cert.png b/static/images/synthetics/api_tests/synthetics_ssl_test_cert.png new file mode 100644 index 0000000000000..940fc4865aa8a Binary files /dev/null and b/static/images/synthetics/api_tests/synthetics_ssl_test_cert.png differ diff --git a/static/images/synthetics/api_tests/tcp_test_config_2.png b/static/images/synthetics/api_tests/tcp_test_config_2.png new file mode 100644 index 0000000000000..98289961ae5d4 Binary files /dev/null and b/static/images/synthetics/api_tests/tcp_test_config_2.png differ diff --git a/static/images/synthetics/api_tests/udp_test_config_2.png b/static/images/synthetics/api_tests/udp_test_config_2.png new file mode 100644 index 0000000000000..d1257f690178c Binary files /dev/null and b/static/images/synthetics/api_tests/udp_test_config_2.png differ diff --git a/static/images/synthetics/api_tests/websocket_test_config_2.png b/static/images/synthetics/api_tests/websocket_test_config_2.png new file mode 100644 index 0000000000000..035f4367764ae Binary files /dev/null and b/static/images/synthetics/api_tests/websocket_test_config_2.png differ diff --git a/static/images/synthetics/browser_tests/synthetics_templates_browser.mp4 b/static/images/synthetics/browser_tests/synthetics_templates_browser.mp4 new file mode 100644 index 0000000000000..09216e257ecaa Binary files /dev/null and b/static/images/synthetics/browser_tests/synthetics_templates_browser.mp4 differ