From bd5e9bf6c896dfcc0ea8382b4dbcf978eab066c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Marti=CC=81nez=20Bernardo?= Date: Tue, 4 Feb 2025 11:26:53 +0100 Subject: [PATCH 1/9] Adapt RUM server onboarding to include httpd --- .../browser/setup/server.md | 85 ++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index d26674dca52db..af349268eb103 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -29,7 +29,7 @@ The available functionality has the following important limitations: - If proxying compressed traffic, the Auto-Instrumentation method is not able to inject the JS scriptlet into the HTML traffic. - This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX web servers. -- If NGINX or IIS is acting as a proxy and the upstream server has end-to-end encryption (like TLS) enabled, the module cannot inject RUM. Ensure the web server is set up for TLS origination for successful instrumentation. +- If acting as a proxy and the upstream server has end-to-end encryption (like TLS) enabled, the module cannot inject RUM. Ensure the web server is set up for TLS origination for successful instrumentation. - (Windows IIS only) Configuration for Auto-Instrumentation is only available per Windows IIS site. ## Prerequisites @@ -115,6 +115,75 @@ To automatically instrument your RUM application: {{% /collapse-content %}} +{{% /tab %}} +{{% tab "httpd" %}} + +The Auto-Instrumentation method leverages the [Apache httpd Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses +identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install Apache httpd Server manually. + +[1]: https://httpd.apache.org/modules/ + + +{{% collapse-content title="Automatic installation (recommended)" level="h5" %}} + +To automatically instrument your RUM application: + +1. In Datadog, navigate to the [**Digital Experience > Add an Application Page**][1] and select the JavaScript (JS) application type. +2. Select **Auto-Instrumentation** and **httpd**. +3. Set your Session and Session Replay sample rates. See [guidance on configuring sampling][2]. +4. Copy and run the installer command to load the Datadog httpd Module with the RUM SDK Injector onto httpd. +5. After the installer successfully installs the SDK Injector, restart httpd to begin collecting RUM sessions. +6. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the NGINX error logs for relevant messages. The module logs important steps during the injection process. Ensure that httpd is configured with at least the `info` log level. + +[1]: https://app.datadoghq.com/rum/list +[2]: /real_user_monitoring/guide/sampling-browser-plans/ + +{{% /collapse-content %}} + +{{% collapse-content title="Manual configuration" level="h5" %}} + +### Download the module file + +1. Download the [zipped module][1]. +2. Extract the zip to obtain the `mod_datadog.so` file. Move it to a location that httpd has access to (referenced as `` in the steps below). + +[1]: https://rum-auto-instrumentation.s3.amazonaws.com/httpd/latest/mod_datadog-amd64.zip + +### Update httpd configuration +1. Locate the configuration file. You can use `apachectl -V` to see the configuration path. Add the following line to load the module: + + ```javascript + LoadModule datadog_module + ``` + +2. Then in the appropriate **root or location** section, add the following: + + ```javascript + # APM Tracing is enabled by default. The following line disables APM Tracing + DatadogTracing Off + DatadogRum On + + DatadogRumOption "applicationId" "" + DatadogRumOption "clientToken" "" + DatadogRumOption "site" "" + DatadogRumOption "service" "my-web-application" + DatadogRumOption "env" "production" + DatadogRumOption "version" "1.0.0" + DatadogRumOption "sessionSampleRate" "100" + DatadogRumOption "sessionReplaySampleRate" "100" + DatadogRumOption "trackResources" "true" + DatadogRumOption "trackLongTasks" "true" + DatadogRumOption "trackUserInteractions" "true" + + ``` + +### Restart your server + +1. Restart the httpd server to begin collecting data for your Datadog RUM application. By default, the RUM SDK is injected to all HTML documents. You may need to clear your browser cache. +2. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the httpd error logs for relevant messages. The module logs important steps during the injection process. Ensure that httpd is configured with at least the `info` log level. + +{{% /collapse-content %}} + {{% /tab %}} {{% tab "Windows IIS" %}} @@ -162,7 +231,19 @@ To update your RUM Application: 1. Go to your RUM application from the [Application Management][1] list. 2. On the Instrument your application page, adjust the slider or enter a specific percentage in the input box for Session Sampling or Session Replay Sampling. -3. Copy and run the installer command in your `NGINX.conf` file. +3. Copy and paste the configuration snippet to your `NGINX.conf` file. + +[1]: https://app.datadoghq.com/rum/list + +{{% /tab %}} + +{{% tab "httpd" %}} + +To update your RUM Application: + +1. Go to your RUM application from the [Application Management][1] list. +2. On the Instrument your application page, adjust the slider or enter a specific percentage in the input box for Session Sampling or Session Replay Sampling. +3. Copy and paste the configuration snippet to your `/opt/datadog-httpd/datadog.conf` file. [1]: https://app.datadoghq.com/rum/list From c4e8f754afcb160fcbffc44d003b9daf7645ba20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Marti=CC=81nez=20Bernardo?= Date: Tue, 11 Feb 2025 13:38:08 +0100 Subject: [PATCH 2/9] Annotation about specific parameters for all proxies --- content/en/real_user_monitoring/browser/setup/server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index af349268eb103..88b113127eef0 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -28,7 +28,7 @@ After your applications have been instrumented, you can configure your RUM appli The available functionality has the following important limitations: - If proxying compressed traffic, the Auto-Instrumentation method is not able to inject the JS scriptlet into the HTML traffic. -- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX web servers. +- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, IIS and httpd web servers. - If acting as a proxy and the upstream server has end-to-end encryption (like TLS) enabled, the module cannot inject RUM. Ensure the web server is set up for TLS origination for successful instrumentation. - (Windows IIS only) Configuration for Auto-Instrumentation is only available per Windows IIS site. From 4ddd9e9149c7e25aceedd1408339c5fbe1c90a4a Mon Sep 17 00:00:00 2001 From: Rosa Trieu Date: Wed, 12 Feb 2025 13:05:30 -0800 Subject: [PATCH 3/9] Remove redundancy for web server limitation --- .../en/real_user_monitoring/browser/setup/server.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index 88b113127eef0..180e7dd44f336 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -29,7 +29,10 @@ The available functionality has the following important limitations: - If proxying compressed traffic, the Auto-Instrumentation method is not able to inject the JS scriptlet into the HTML traffic. - This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, IIS and httpd web servers. -- If acting as a proxy and the upstream server has end-to-end encryption (like TLS) enabled, the module cannot inject RUM. Ensure the web server is set up for TLS origination for successful instrumentation. +- If the web server is acting as a proxy and the upstream server has end-to-end encryption (like TLS) or content compression (like gzip, zstd, or Brotli) enabled, the module may not inject RUM. Ensure the following for successful instrumentation: + - Content compression is disabled on the upstream server. + - The web server is configured to compress the content. + - The web server is set up for TLS origination. - (Windows IIS only) Configuration for Auto-Instrumentation is only available per Windows IIS site. ## Prerequisites @@ -276,7 +279,7 @@ Since the module is in Preview, it's possible NGINX may stop serving requests, p If you notice that RUM is not being injected into HTML pages, consider the following potential causes: - **Content-Type mismatch**: RUM is injected only into HTML pages. If the `Content-Type` header does not correctly indicate `text/html`, the injection is skipped. -- **Content compression by upstream server**: If NGINX is acting as a proxy and the upstream server has content compression (like gzip, zstd, or Brotli) enabled, the module may not inject RUM. Ensure that content compression is disabled on the upstream server and configure NGINX to compress the content. +- **Upstream server has end-to-end encryption or content compression**: See [Limitations][41]. ## Reference @@ -346,4 +349,5 @@ If you notice that RUM is not being injected into HTML pages, consider the follo [37]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-amd64-1.26.2.so.tgz [38]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-arm64-1.26.2.so.tgz [39]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-amd64-1.27.0.so.tgz -[40]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-arm64-1.27.0.so.tgz \ No newline at end of file +[40]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-arm64-1.27.0.so.tgz +[41]: /real_user_monitoring/browser/setup/server/#limitations \ No newline at end of file From 6e414d23920ad1a940da269fd0d661355d35216f Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Fri, 14 Feb 2025 10:48:58 +0100 Subject: [PATCH 4/9] Update content/en/real_user_monitoring/browser/setup/server.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> --- content/en/real_user_monitoring/browser/setup/server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index 180e7dd44f336..ce3aa0d6fab44 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -119,7 +119,7 @@ To automatically instrument your RUM application: {{% /collapse-content %}} {{% /tab %}} -{{% tab "httpd" %}} +{{% tab "Apache httpd" %}} The Auto-Instrumentation method leverages the [Apache httpd Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install Apache httpd Server manually. From 2beb895ed766d3a67c2e57a8c2a9f7ae0a31a91d Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Fri, 14 Feb 2025 10:49:15 +0100 Subject: [PATCH 5/9] Update content/en/real_user_monitoring/browser/setup/server.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> --- content/en/real_user_monitoring/browser/setup/server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index ce3aa0d6fab44..ec201ce2d6acd 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -28,7 +28,7 @@ After your applications have been instrumented, you can configure your RUM appli The available functionality has the following important limitations: - If proxying compressed traffic, the Auto-Instrumentation method is not able to inject the JS scriptlet into the HTML traffic. -- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, IIS and httpd web servers. +- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, Windows IIS, and Apache httpd web servers. - If the web server is acting as a proxy and the upstream server has end-to-end encryption (like TLS) or content compression (like gzip, zstd, or Brotli) enabled, the module may not inject RUM. Ensure the following for successful instrumentation: - Content compression is disabled on the upstream server. - The web server is configured to compress the content. From 9fda97a02b3f51e884111d2b30f4357ed5de75d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Marti=CC=81nez=20Bernardo?= Date: Mon, 17 Feb 2025 08:55:15 +0100 Subject: [PATCH 6/9] Remove confusing line --- .../browser/setup/server.md | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index ec201ce2d6acd..4eb171a85ab30 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -31,7 +31,6 @@ The available functionality has the following important limitations: - This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, Windows IIS, and Apache httpd web servers. - If the web server is acting as a proxy and the upstream server has end-to-end encryption (like TLS) or content compression (like gzip, zstd, or Brotli) enabled, the module may not inject RUM. Ensure the following for successful instrumentation: - Content compression is disabled on the upstream server. - - The web server is configured to compress the content. - The web server is set up for TLS origination. - (Windows IIS only) Configuration for Auto-Instrumentation is only available per Windows IIS site. @@ -46,7 +45,7 @@ The automatic installation method requires that you have the [Datadog Agent][2] {{< tabs >}} {{% tab "NGINX" %}} -The Auto-Instrumentation method leverages the [NGINX Dynamic Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses +The Auto-Instrumentation method leverages the [NGINX Dynamic Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install NGINX manually. [1]: https://docs.nginx.com/nginx/admin-guide/dynamic-modules/dynamic-modules/ @@ -289,22 +288,22 @@ If you notice that RUM is not being injected into HTML pages, consider the follo |---------------|-------|--------| | 1.22.0 | [ngx_http_datadog-amd64-1.22.0][5] | [ngx_http_datadog-arm64-1.22.0][6] | | 1.22.1 | [ngx_http_datadog-amd64-1.22.1][7] | [ngx_http_datadog-arm64-1.22.1][8] | -| 1.23.0 | [ngx_http_datadog-amd64-1.23.0][9] | [ngx_http_datadog-arm64-1.23.0][10] | -| 1.23.1 | [ngx_http_datadog-amd64-1.23.1][11] | [ngx_http_datadog-arm64-1.23.1][12] | -| 1.23.2 | [ngx_http_datadog-amd64-1.23.2][13] | [ngx_http_datadog-arm64-1.23.2][14] | -| 1.23.3 | [ngx_http_datadog-amd64-1.23.3][15] | [ngx_http_datadog-arm64-1.23.3][16] | -| 1.23.4 | [ngx_http_datadog-amd64-1.23.4][17] | [ngx_http_datadog-arm64-1.23.4][18] | -| 1.24.0 | [ngx_http_datadog-amd64-1.24.0][19] | [ngx_http_datadog-arm64-1.24.0][20] | -| 1.25.0 | [ngx_http_datadog-amd64-1.25.0][21] | [ngx_http_datadog-arm64-1.25.0][22] | -| 1.25.1 | [ngx_http_datadog-amd64-1.25.1][23] | [ngx_http_datadog-arm64-1.25.1][24] | -| 1.25.2 | [ngx_http_datadog-amd64-1.25.2][25] | [ngx_http_datadog-arm64-1.25.2][26] | -| 1.25.3 | [ngx_http_datadog-amd64-1.25.3][27] | [ngx_http_datadog-arm64-1.25.3][28] | -| 1.25.4 | [ngx_http_datadog-amd64-1.25.4][29] | [ngx_http_datadog-arm64-1.25.4][30] | -| 1.25.5 | [ngx_http_datadog-amd64-1.25.5][31] | [ngx_http_datadog-arm64-1.25.5][32] | -| 1.26.0 | [ngx_http_datadog-amd64-1.26.0][33] | [ngx_http_datadog-arm64-1.26.0][34] | -| 1.26.1 | [ngx_http_datadog-amd64-1.26.1][35] | [ngx_http_datadog-arm64-1.26.1][36] | -| 1.26.2 | [ngx_http_datadog-amd64-1.26.2][37] | [ngx_http_datadog-arm64-1.26.2][38] | -| 1.27.0 | [ngx_http_datadog-amd64-1.27.0][39] | [ngx_http_datadog-arm64-1.27.0][40] | +| 1.23.0 | [ngx_http_datadog-amd64-1.23.0][9] | [ngx_http_datadog-arm64-1.23.0][10] | +| 1.23.1 | [ngx_http_datadog-amd64-1.23.1][11] | [ngx_http_datadog-arm64-1.23.1][12] | +| 1.23.2 | [ngx_http_datadog-amd64-1.23.2][13] | [ngx_http_datadog-arm64-1.23.2][14] | +| 1.23.3 | [ngx_http_datadog-amd64-1.23.3][15] | [ngx_http_datadog-arm64-1.23.3][16] | +| 1.23.4 | [ngx_http_datadog-amd64-1.23.4][17] | [ngx_http_datadog-arm64-1.23.4][18] | +| 1.24.0 | [ngx_http_datadog-amd64-1.24.0][19] | [ngx_http_datadog-arm64-1.24.0][20] | +| 1.25.0 | [ngx_http_datadog-amd64-1.25.0][21] | [ngx_http_datadog-arm64-1.25.0][22] | +| 1.25.1 | [ngx_http_datadog-amd64-1.25.1][23] | [ngx_http_datadog-arm64-1.25.1][24] | +| 1.25.2 | [ngx_http_datadog-amd64-1.25.2][25] | [ngx_http_datadog-arm64-1.25.2][26] | +| 1.25.3 | [ngx_http_datadog-amd64-1.25.3][27] | [ngx_http_datadog-arm64-1.25.3][28] | +| 1.25.4 | [ngx_http_datadog-amd64-1.25.4][29] | [ngx_http_datadog-arm64-1.25.4][30] | +| 1.25.5 | [ngx_http_datadog-amd64-1.25.5][31] | [ngx_http_datadog-arm64-1.25.5][32] | +| 1.26.0 | [ngx_http_datadog-amd64-1.26.0][33] | [ngx_http_datadog-arm64-1.26.0][34] | +| 1.26.1 | [ngx_http_datadog-amd64-1.26.1][35] | [ngx_http_datadog-arm64-1.26.1][36] | +| 1.26.2 | [ngx_http_datadog-amd64-1.26.2][37] | [ngx_http_datadog-arm64-1.26.2][38] | +| 1.27.0 | [ngx_http_datadog-amd64-1.27.0][39] | [ngx_http_datadog-arm64-1.27.0][40] | ## Further reading @@ -350,4 +349,4 @@ If you notice that RUM is not being injected into HTML pages, consider the follo [38]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-arm64-1.26.2.so.tgz [39]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-amd64-1.27.0.so.tgz [40]: https://ddagent-windows-unstable.s3.amazonaws.com/inject-browser-sdk/nginx/latest/ngx_http_datadog_module-arm64-1.27.0.so.tgz -[41]: /real_user_monitoring/browser/setup/server/#limitations \ No newline at end of file +[41]: /real_user_monitoring/browser/setup/server/#limitations From 4a36228f6bbd69539177727b7a9745de033fb87a Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Mon, 17 Feb 2025 14:50:22 +0100 Subject: [PATCH 7/9] Apply suggestions from code review Co-authored-by: Aymeric Co-authored-by: Damien Mehala --- .../browser/setup/server.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index 4eb171a85ab30..ad638dc893e96 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -28,8 +28,8 @@ After your applications have been instrumented, you can configure your RUM appli The available functionality has the following important limitations: - If proxying compressed traffic, the Auto-Instrumentation method is not able to inject the JS scriptlet into the HTML traffic. -- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported for NGINX, Windows IIS, and Apache httpd web servers. -- If the web server is acting as a proxy and the upstream server has end-to-end encryption (like TLS) or content compression (like gzip, zstd, or Brotli) enabled, the module may not inject RUM. Ensure the following for successful instrumentation: +- This instrumentation method does not support any [advanced RUM configurations][3]. However, `allowedTracingUrls` and `excludedActivityUrls` are supported. +- If the web server is acting as a proxy and the upstream server has end-to-end encryption (like TLS) or content compression (like gzip, zstd, or Brotli) enabled, the module may not inject the RUM Browser SDK. Ensure the following for successful instrumentation: - Content compression is disabled on the upstream server. - The web server is set up for TLS origination. - (Windows IIS only) Configuration for Auto-Instrumentation is only available per Windows IIS site. @@ -45,7 +45,7 @@ The automatic installation method requires that you have the [Datadog Agent][2] {{< tabs >}} {{% tab "NGINX" %}} -The Auto-Instrumentation method leverages the [NGINX Dynamic Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses +The Auto-Instrumentation method leverages the [NGINX Dynamic Modules capability][1] to implement a response body filter. The filter injects the RUM Browser SDK into the response body for responses identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install NGINX manually. [1]: https://docs.nginx.com/nginx/admin-guide/dynamic-modules/dynamic-modules/ @@ -118,10 +118,10 @@ To automatically instrument your RUM application: {{% /collapse-content %}} {{% /tab %}} -{{% tab "Apache httpd" %}} +{{% tab "Apache HTTP Server" %}} The Auto-Instrumentation method leverages the [Apache httpd Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses -identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install Apache httpd Server manually. +identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install the module manually. [1]: https://httpd.apache.org/modules/ @@ -134,8 +134,8 @@ To automatically instrument your RUM application: 2. Select **Auto-Instrumentation** and **httpd**. 3. Set your Session and Session Replay sample rates. See [guidance on configuring sampling][2]. 4. Copy and run the installer command to load the Datadog httpd Module with the RUM SDK Injector onto httpd. -5. After the installer successfully installs the SDK Injector, restart httpd to begin collecting RUM sessions. -6. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the NGINX error logs for relevant messages. The module logs important steps during the injection process. Ensure that httpd is configured with at least the `info` log level. +5. After the installer successfully installs the SDK Injector, restart Apache HTTP Server to begin collecting RUM sessions. +6. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the error logs for relevant messages. The module logs important steps during the injection process. Ensure that Apache HTTP Server is configured with at least the `info` log level. [1]: https://app.datadoghq.com/rum/list [2]: /real_user_monitoring/guide/sampling-browser-plans/ @@ -147,12 +147,12 @@ To automatically instrument your RUM application: ### Download the module file 1. Download the [zipped module][1]. -2. Extract the zip to obtain the `mod_datadog.so` file. Move it to a location that httpd has access to (referenced as `` in the steps below). +2. Extract the zip to obtain the `mod_datadog.so` file. Move it to a location that Apache HTTP Server has access to (referenced as `` in the steps below). [1]: https://rum-auto-instrumentation.s3.amazonaws.com/httpd/latest/mod_datadog-amd64.zip -### Update httpd configuration -1. Locate the configuration file. You can use `apachectl -V` to see the configuration path. Add the following line to load the module: +### Update Apache HTTP Server configuration +1. Locate the configuration file. You can use `apachectl -V` to find the default configuration path. Add the following line to load the module: ```javascript LoadModule datadog_module @@ -181,8 +181,8 @@ To automatically instrument your RUM application: ### Restart your server -1. Restart the httpd server to begin collecting data for your Datadog RUM application. By default, the RUM SDK is injected to all HTML documents. You may need to clear your browser cache. -2. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the httpd error logs for relevant messages. The module logs important steps during the injection process. Ensure that httpd is configured with at least the `info` log level. +1. Restart the Apache HTTP Server to begin collecting data for your Datadog RUM application. By default, the RUM SDK is injected to all HTML documents. You may need to clear your browser cache. +2. (Optional) To verify the module is successfully injecting the RUM Browser SDK into HTML pages, check the httpd error logs for relevant messages. The module logs important steps during the injection process. Ensure that Apache HTTP Server is configured with at least the `info` log level. {{% /collapse-content %}} From 81f533bfc8d084ca114e55e6fe90f885967c4206 Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:37:29 +0100 Subject: [PATCH 8/9] Update content/en/real_user_monitoring/browser/setup/server.md Co-authored-by: Damien Mehala --- content/en/real_user_monitoring/browser/setup/server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index ad638dc893e96..2d3fa53c5f2b7 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -239,7 +239,7 @@ To update your RUM Application: {{% /tab %}} -{{% tab "httpd" %}} +{{% tab "Apache HTTP Server" %}} To update your RUM Application: From 11709c23d341939bbc2c02b0e2c0eaffaa4577fa Mon Sep 17 00:00:00 2001 From: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> Date: Thu, 20 Feb 2025 07:59:59 -0800 Subject: [PATCH 9/9] Apply suggestions from code review Applying minor suggestions --- content/en/real_user_monitoring/browser/setup/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/real_user_monitoring/browser/setup/server.md b/content/en/real_user_monitoring/browser/setup/server.md index 2d3fa53c5f2b7..fe9320e620186 100644 --- a/content/en/real_user_monitoring/browser/setup/server.md +++ b/content/en/real_user_monitoring/browser/setup/server.md @@ -120,7 +120,7 @@ To automatically instrument your RUM application: {{% /tab %}} {{% tab "Apache HTTP Server" %}} -The Auto-Instrumentation method leverages the [Apache httpd Modules capability][1] to implement a response body filter. The filter injects the RUM SDK into the response body for responses +The Auto-Instrumentation method leverages the [Apache httpd Modules capability][1] to implement a response body filter. The filter injects the RUM Browser SDK into the response body for responses identified as HTML. For more granular control over how configuration files or permissions are handled, you can also install the module manually. [1]: https://httpd.apache.org/modules/ @@ -151,14 +151,14 @@ To automatically instrument your RUM application: [1]: https://rum-auto-instrumentation.s3.amazonaws.com/httpd/latest/mod_datadog-amd64.zip -### Update Apache HTTP Server configuration +### Update Apache HTTP server configuration 1. Locate the configuration file. You can use `apachectl -V` to find the default configuration path. Add the following line to load the module: ```javascript LoadModule datadog_module ``` -2. Then in the appropriate **root or location** section, add the following: +2. Within the appropriate **root or location** section, add the following: ```javascript # APM Tracing is enabled by default. The following line disables APM Tracing