Skip to content

Commit a78584d

Browse files
Merge pull request #10225 from emirmx/run/4419-add-datadog-setup-instructions-to-tracing-docs
Document Datadaog setup with tracing
2 parents 5d4c91a + 28d633d commit a78584d

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

content/en/docs/refguide/runtime/tracing-in-runtime.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: "Describes how to setup and use tracing in the Mendix Runtime."
66

77
## Introduction
88

9-
Mendix now supports tracing via OpenTelemetry. When tracing is enabled the runtime will generate traces that will help you analyze errors and performance.
9+
Mendix now supports tracing via OpenTelemetry. When tracing is enabled, the runtime generates traces that help you analyze errors and performance.
1010
These traces can be sent to observability tools like [Jaeger](https://www.jaegertracing.io/) or [Datadog](https://www.datadoghq.com/).
1111

1212
{{% alert color="warning" %}}
@@ -17,7 +17,7 @@ Tracing is currently not supported on Mendix Cloud and Mendix Cloud Dedicated.
1717

1818
The runtime generates spans for:
1919

20-
* Runtime operations coming from the front end, for example microflow calls, retrieves, commits, and deletes
20+
* Runtime operations coming from the front end, for example, microflow calls, retrieves, commits, and deletes
2121
* Microflow execution within the runtime, including sub-microflow calls
2222
* Microflow loops and loop iterations
2323
* Execution of task queue tasks
@@ -26,15 +26,15 @@ The runtime generates spans for:
2626

2727
### Minimal Configuration {#min-configuration}
2828

29-
Tracing can be enabled from the `App Settings` -> `Configuration` dialog. In the `Tracing` tab you can enable tracing and specify an **Endpoint** and **Service Name**.
29+
Tracing can be enabled from the `App Settings` -> `Configuration` dialog. In the `Tracing` tab, you can enable tracing and specify an **Endpoint** and **Service Name**.
3030

3131
{{< figure src="/attachments/refguide/runtime/tracing-in-runtime/tracing-configuration.png" >}}
3232

3333
### Testing
3434

35-
To test the tracing you can use [Jaeger](https://www.jaegertracing.io/). For example, the all-in-one binary or docker image. Jaeger will listen to the above endpoint by default.
35+
To test the tracing you can use [Jaeger](https://www.jaegertracing.io/). For example, the all-in-one binary or Docker image. Jaeger will listen to the above endpoint by default.
3636

37-
Alternatively you can set up the [OpenTelemetry collector](https://opentelemetry.io/docs/collector/), which will also listen to the default endpoint and can be configured to send to backends which support OpenTelemetry. Check with your APM vendor to confirm that OpenTelemetry is supported. The free online collector configuration tool [OTelBin](https://github.com/dash0hq/otelbin) can help with collector configuration.
37+
Alternatively, you can set up the [OpenTelemetry collector](https://opentelemetry.io/docs/collector/), which will also listen to the default endpoint and can be configured to send to backends which support OpenTelemetry. Check with your APM vendor to confirm that OpenTelemetry is supported. The free online collector configuration tool [OTelBin](https://github.com/dash0hq/otelbin) can help with collector configuration.
3838

3939
### All settings
4040

@@ -48,7 +48,7 @@ The Java Agent can be configured through system properties, which can be added t
4848
| `otel.resource.attributes` | Extra resource attributes to include in every span. Example: `attribute1=value1,attribute2=value2` | |
4949
| `otel.traces.exporter` | Comma-separated list of span exporters. Supported values are: `otlp`, `console`, `logging-otlp`, and `none`. | `otlp` |
5050
| `otel.exporter.otlp.traces.protocol` | The transport protocol to use on OTLP trace requests. Options include `grpc` and `http/protobuf`. | `http/protobuf` (Java Agent) |
51-
| `otel.exporter.otlp.traces.endpoint` | The endpoint to send all OTLP traces to. It must be a URL with a scheme of either http or https based on the use of TLS. | `http://localhost:4318/v1/traces` when the protocol is `http/protobuf`<br>`http://localhost:4317` when the protocol is `grpc` |
51+
| `otel.exporter.otlp.traces.endpoint` | The endpoint to send all OTLP traces to. It must be a URL with a scheme of either http or https, based on the use of TLS. | `http://localhost:4318/v1/traces` when the protocol is `http/protobuf`<br>`http://localhost:4317` when the protocol is `grpc` |
5252
| `otel.exporter.otlp.traces.certificate` | The path to the file containing trusted certificates to use when verifying a trace server's TLS credentials. The file should contain one or more X.509 certificates in PEM format. | By default the host platform's trusted root certificates are used. |
5353
| `otel.exporter.otlp.traces.client.key` | The path to the file containing the private client key to use when verifying a trace client's TLS credentials. The file should contain one private key in PKCS8 PEM format. | By default no client key file is used. |
5454
| `otel.exporter.otlp.traces.client.certificate` | The path to the file containing trusted certificates to use when verifying a trace client's TLS credentials. The file should contain one or more X.509 certificates in PEM format. | By default no certificate file is used. |
@@ -94,5 +94,28 @@ docker run MyMendixApp \
9494
```
9595

9696
{{% alert color="info" %}}
97-
Replace `MyServiceName` with a meaningful identifier for your service and `collector-host` and `port` with the host and port of your OpenTelemetry collector.
97+
Replace `MyServiceName` with a meaningful identifier for your service, and `collector-host` and `port` with the host and port of your OpenTelemetry collector.
9898
{{% /alert %}}
99+
100+
## Sending Traces to Datadog
101+
102+
There are two options for exporting OpenTelemetry traces to Datadog:
103+
104+
* Datadog Distribution of OpenTelemetry (DDOT)
105+
* OpenTelemetry Collector
106+
107+
### Datadog Distribution of OpenTelemetry (DDOT)
108+
109+
DDOT can be deployed to Kubernetes or Linux (Preview). The default setup provides minimal configuration, allowing it to receive OpenTelemetry traces or logs from your Mendix app and send them to Datadog. With this default configuration, the collector listens on the same ports as your Mendix application.
110+
111+
For installation instructions, refer to the official [DDOT documentation](https://docs.datadoghq.com/opentelemetry/setup/ddot_collector/install).
112+
113+
### OpenTelemetry Collector
114+
115+
The OpenTelemetry Collector can be installed on various operating systems, including Windows, macOS, and Linux.
116+
117+
To use the OpenTelemetry Collector with Datadog, follow these steps:
118+
119+
1. Install the OpenTelemetry Collector by following the official [installation guide](https://opentelemetry.io/docs/collector/installation/).
120+
2. Install the `otelcol_contrib` package instead of `otelcol` to include Datadog support.
121+
3. Run the collector with the [appropriate configuration](https://docs.datadoghq.com/opentelemetry/setup/collector_exporter/install/#2---configure-the-datadog-exporter-and-connector) adapted for Datadog.

0 commit comments

Comments
 (0)