PagerDuty (dagster_pagerduty)

This library provides an integration with PagerDuty, to support creating alerts from your Dagster code.

Presently, it provides a thin wrapper on the Events V2 API.

Getting Started

You can install this library with:

pip install dagster_pagerduty

To use this integration, you’ll first need to create a PagerDuty integration. There are instructions here for creating a new PagerDuty service & integration.

As noted in the PagerDuty documentation, you’ll find an integration key (also referred to as a “routing key”) on the Integrations tab for your new service. This key is used to authorize events created from the PagerDuty events API.

Once your service/integration is created, you can provision a PagerDuty resource and issue PagerDuty alerts from within your solids.

dagster_pagerduty.pagerduty_resource ResourceDefinition[source]

A resource for posting events (alerts) to PagerDuty.

Example:

@solid(required_resource_keys={'pagerduty'})
def pagerduty_solid(context):
    context.resources.pagerduty.EventV2_create(
        summary='alert from dagster'
        source='localhost',
        severity='error',
        event_action='trigger',
    )

@pipeline(
    mode_defs=[ModeDefinition(resource_defs={'pagerduty': pagerduty_resource})],
)
def pd_pipeline():
    pagerduty_solid()

execute_pipeline(
    pd_pipeline,
    {
        'resources': {
            'pagerduty': {'config': {'routing_key': '0123456789abcdef0123456789abcdef'}}
        }
    },
)