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