airflow.providers.pagerduty.hooks.pagerduty

Hook for sending or receiving data from PagerDuty as well as creating PagerDuty incidents.

Module Contents

class airflow.providers.pagerduty.hooks.pagerduty.PagerdutyHook(token: Optional[str] = None, pagerduty_conn_id: Optional[str] = None)[source]

Bases: airflow.hooks.base.BaseHook

Takes both PagerDuty API token directly and connection that has PagerDuty API token.

If both supplied, PagerDuty API token will be used.

Parameters
  • token -- PagerDuty API token

  • pagerduty_conn_id -- connection that has PagerDuty API token in the password field

get_session(self)[source]

Returns pdpyras.APISession for use with sending or receiving data through the PagerDuty REST API.

The pdpyras library supplies a class pdpyras.APISession extending requests.Session from the Requests HTTP library.

Documentation on how to use the APISession class can be found at: https://pagerduty.github.io/pdpyras/#data-access-abstraction

create_event(self, summary: str, severity: str, source: str = 'airflow', action: str = 'trigger', routing_key: Optional[str] = None, dedup_key: Optional[str] = None, custom_details: Optional[Any] = None, group: Optional[str] = None, component: Optional[str] = None, class_type: Optional[str] = None, images: Optional[List[Any]] = None, links: Optional[List[Any]] = None)[source]

Create event for service integration.

Parameters
  • summary (str) -- Summary for the event

  • severity (str) -- Severity for the event, needs to be one of: info, warning, error, critical

  • source (str) -- Specific human-readable unique identifier, such as a hostname, for the system having the problem.

  • action (str) -- Event action, needs to be one of: trigger, acknowledge, resolve. Default to trigger if not specified.

  • routing_key (str) -- Integration key. If not specified, will try to read from connection's extra json blob.

  • dedup_key (str) -- A string which identifies the alert triggered for the given event. Required for the actions acknowledge and resolve.

  • custom_details (dict or str) -- Free-form details from the event. Can be a dictionary or a string. If a dictionary is passed it will show up in PagerDuty as a table.

  • group (str) -- A cluster or grouping of sources. For example, sources “prod-datapipe-02” and “prod-datapipe-03” might both be part of “prod-datapipe”

  • component (str) -- The part or component of the affected system that is broken.

  • class_type (str) -- The class/type of the event.

  • images (list[dict]) -- List of images to include. Each dictionary in the list accepts the following keys: src: The source (URL) of the image being attached to the incident. This image must be served via HTTPS. href: [Optional] URL to make the image a clickable link. alt: [Optional] Alternative text for the image.

  • links (list[dict]) -- List of links to include. Each dictionary in the list accepts the following keys: href: URL of the link to be attached. text: [Optional] Plain text that describes the purpose of the link, and can be used as the link's text.

Returns

PagerDuty Events API v2 response.

Return type

dict

Was this entry helpful?