keptn / integrations

Lists Keptn Integrations and ideas for new ones
Apache License 2.0
4 stars 0 forks source link

[integration] PagerDuty Webhook #18

Closed agardnerIT closed 1 year ago

agardnerIT commented 2 years ago

Investigate (and if possible) develop webhook service based integration (notification / fire and forget) integration with PagerDuty.

A full bi-directional PagerDuty integration is out of scope for this ticket. That requirement would be best suited to a "full" Keptn service.

Definition of Done

If you need this integration, click the thumbs up emoji. If you are willing to "sponsor" (ie. support) the development of this integration, click the heart emoji.

afzal442 commented 2 years ago

Hi, I would like to look into this. Thanks

afzal442 commented 2 years ago

Hi, Could you elaborate a little more about (notification / fire and forget) integration?

image

Any example regarding that URL? Thanks

afzal442 commented 2 years ago

Hi, I was wondering what I need to do further with that. I think, I am now able to get the response using GET API request triggered by webhook service after subscribed for an event.

afzal442 commented 2 years ago

Investigation on PagerDuty API Part 1

{
curl --request POST \
  --url https://events.pagerduty.com/v2/enqueue \
  --header 'Content-Type: application/json' \
  --data '{
    "payload": {
        "summary": "My Test dg1",
        "severity": "high",
        "source": "sh.keptn.triggered.event"
    },
    "routing_key": "92877d39e483490ac09a20101967e88e",
    "dedup_key": "dtg/svc",
    "event_action": "trigger",
    "client": "Sample Monitoring Service",
    "client_url": "https://datadog.service.com"
}'
}

Part 2

curl --request POST \
  --url https://api.pagerduty.com/incidents \
  --header 'Accept: application/vnd.pagerduty+json;version=2' \
  --header 'Authorization: Token token=u+jAbd1s9vZAysEnxU1w' \
  --header 'Content-Type: application/json' \
  --header 'From: b113053@iiit-bh.ac.in' \
  --data '{
  "incident": {
    "type": "incident",
    "title": "The server is on fire.",
    "service": {
      "id": "PP7DGG2",
      "type": "service_reference"
    },
    "priority": {
      "id": "P53ZZH5",
      "type": "priority_reference"
    },
    "urgency": "high",
    "incident_key": "92877d39e483490ac09a20101967e88e",
    "body": {
      "type": "incident_body",
      "details": "A disk is getting full on this machine. You should investigate what is causing the disk to fill, and ensure that there is an automated process in place for ensuring data is rotated (eg. logs should have logrotate around them). If data is expected to stay on this disk forever, you should start planning to scale up to a larger disk."
    },
    "escalation_policy": {
      "id": "PNJ2H9R",
      "type": "escalation_policy_reference"
    }
  }
}'
agardnerIT commented 2 years ago

@johannes-b please assign to @afzal442

afzal442 commented 1 year ago

Related links https://docs.robusta.dev/master/catalog/sinks/PagerDuty.html

https://www.youtube.com/watch?v=Fckop7DmMNI