ToolJet/docs/versioned_docs/version-3.16.0-LTS/tj-setup/observability/datadog.md
Aditya Joshi 741e5df1d3
[docs]: Add Observability Docs (#14871)
* [docs]: Add documentation for setting up observability using Datadog

* Updated doc flow for observability using datadog

* Updated doc flow for observability using datadog

* [docs]: Add docs for setting up observability using New Relic

* [docs]: Add docs for observability setup using Grafana

* Add intro line for setting up observability using Grafana docs

* [docs]: Add changes to Observability docs

* [docs]: Add documentation for observability using Last9

* [docs]: Fixed typo on setup page

* [docs]: Updated setup from observability docs

* [docs]: Changes in Observability docs wrt comments

* [docs]: Added screenshot for observability
2026-01-13 11:30:58 +05:30

3.2 KiB

id title
datadog Datadog

ToolJet supports OpenTelemetry (OTel) based observability. When using Datadog, ToolJet does not ship a Datadog Agent by default. You must run a Datadog Agent alongside ToolJet and configure ToolJet to export telemetry to it. This guide walks through setting up observability using Datadog.

ToolJet doesn't automatically send telemetry to Datadog, instead we need a Datadog agent as a middleman to forward the data to datadog. It is a 3 step process:

  • ToolJet emits traces and metrics using OpenTelemetry
  • The Datadog Agent receives OTLP data locally
  • The agent forwards data securely to Datadog
Datadog observability setup

Setting Up Obervability Using Datadog

Step 1: Run a Datadog Agent

:::info For an in-depth guide on running the Datadog Agent, refer to the official Datadog documentation. ::: ToolJet exports observability data using OpenTelemetry and requires a Datadog Agent to be running and accessible.

  • If you are not using Docker Compose to run ToolJet, run the Datadog Agent using any supported method (Docker, systemd, Kubernetes) as described in the Datadog documentation.
  • If you are running ToolJet using Docker Compose, you can add the Datadog Agent as a service in your docker-compose.yml.
dd-agent:
  image: gcr.io/datadoghq/agent:7
  container_name: dd-agent
  restart: unless-stopped

  ports:
    - "4317:4317"   # OTLP gRPC
    - "4318:4318"   # OTLP HTTP
    - "8126:8126"   # Datadog APM (optional)

  environment:
    DD_SITE: us5.datadoghq.com
    DD_API_KEY: <your-datadog-api-key>

    # Enable OTLP receivers
    DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT: 0.0.0.0:4318
    DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT: 0.0.0.0:4317

    # Recommended
    DD_APM_ENABLED: "true"
    DD_LOG_LEVEL: info

  volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro
    - /proc:/host/proc:ro
    - /sys/fs/cgroup:/host/sys/fs/cgroup:ro

Step 2: Set Up Environment Variables in ToolJet

Set up the following environment variables in the .env file while running ToolJet:

# Enable OpenTelemetry in ToolJet
ENABLE_OTEL=true

# Service name as it appears in Datadog APM
OTEL_SERVICE_NAME=tooljet

# Datadog Agent OTLP endpoints
# Use the Datadog Agent hostname reachable from ToolJet
OTEL_EXPORTER_OTLP_TRACES=http://dd-agent:4318/v1/traces
OTEL_EXPORTER_OTLP_METRICS=http://dd-agent:4318/v1/metrics

# Optional: enable verbose OpenTelemetry logs for troubleshooting
OTEL_LOG_LEVEL=debug

Datadog Agent Hostname

Deployment Setup Agent Hostname to Use
ToolJet and Datadog Agent via Docker Compose dd-agent
Datadog Agent running on the same host localhost
Datadog Agent running on a remote machine <agent-hostname-or-ip>

:::note Only the Datadog Agent hostname changes based on your deployment. All other environment variables remain the same. :::

Your ToolJet instance will now begin streaming traces and metrics to Datadog, which can be viewed in Datadog APM.