Dagster Datadog Integration

0.29.0 · active · verified Thu Apr 16

The `dagster-datadog` library provides components to integrate Dagster with Datadog for monitoring and observability. This includes resources for sending metrics and events, and loggers for forwarding Dagster logs to Datadog. It is currently at version 0.29.0 and is released as part of the Dagster ecosystem's approximately monthly release cycle, with library versions tracking core Dagster releases.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates defining a Dagster asset that interacts with `DatadogResource` to send a custom metric. It shows how to configure the `DatadogResource` and `DatadogLogger` within your Dagster definitions, requiring Datadog API and APP keys typically provided via environment variables.

from dagster import AssetExecutionContext, Definitions, asset, job
from dagster_datadog import DatadogResource, DatadogLogger
import os

@asset
def my_datadog_asset(context: AssetExecutionContext, datadog: DatadogResource):
    context.log.info("Asset started, sending metric to Datadog...")
    # Use the DatadogResource client to send a custom metric
    datadog.send_metric(
        metric_name="my_asset.completion",
        value=1,
        tags=["asset:my_datadog_asset", f"run_id:{context.run_id}"],
    )
    context.log.info("Metric sent. Asset completed.")

@job
def my_datadog_job():
    my_datadog_asset()

defs = Definitions(
    assets=[my_datadog_asset],
    resources={
        "datadog": DatadogResource(
            api_key=os.environ.get("DATADOG_API_KEY", ""),
            app_key=os.environ.get("DATADOG_APP_KEY", ""),
            # Optional: configure host/port if Datadog Agent is not on localhost
            # host="localhost",
            # port=8125,
        )
    },
    # Optional: configure a Datadog logger for system events
    loggers={
        "datadog": DatadogLogger(
            api_key=os.environ.get("DATADOG_API_KEY", ""),
            app_key=os.environ.get("DATADOG_APP_KEY", "")
        )
    }
)

# To run this example:
# 1. Ensure DATADOG_API_KEY and DATADOG_APP_KEY environment variables are set.
# 2. Save as `repo.py` and run `dagster dev -f repo.py`.
# 3. Launch `my_datadog_job` from the UI.

view raw JSON →