This library provides an integration with PagerDuty, to support creating alerts from your Dagster code.
Presently, it provides a thin wrapper on the Events API V2.
You can install this library with:
pip install dagster_pagerduty
To use this integration, you’ll first need to create an Events API V2 PagerDuty integration on a PagerDuty service. There are instructions here for creating a new PagerDuty service & integration.
Once your Events API V2 integration is set up, you’ll find an Integration Key (also referred to as a “Routing Key”) on the Integrations tab for your 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'}}
}
}
)