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.
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 ops.
The routing key provisions access to your PagerDuty service. You will need to include the integration key for your new integration, as a routing_key in the event payload.
A resource for posting events (alerts) to PagerDuty.
Example
@op(required_resource_keys={'pagerduty'})
def pagerduty_op(context):
context.resources.pagerduty.EventV2_create(
summary='alert from dagster'
source='localhost',
severity='error',
event_action='trigger',
)
@job(resource_defs={ 'pagerduty': pagerduty_resource })
def pagerduty_test():
pagerduty_op()
pagerduty_test.execute_in_process(
run_config={
"resources": {
'pagerduty': {'config': {'routing_key': '0123456789abcdef0123456789abcdef'}}
}
}
)