robusta-dev/robusta

Improve the Jira Sink

Closed this issue · 3 comments

Is your feature request related to a problem?
Jira integration is very useful, albeit a bit basic in its current form. I would love Robusta to have some adding features like:

  • Closing Jira issues when a matching solved alert is fired
  • Configure Jira Sink behavior through additional params (i.e. send resolved status to Jira, re-open closed issues if new alarms arrive, etc. etc.)
  • Update existing issues with new content from Prometheus alerts (if alert's fingeprint matches)
  • Carry on additional fields coming from Prometheus alerts (i.e. runbook_url above the others)

Describe the solution you'd like
The overall flow is the one depicted here
image

In a nutshell, when a Prometheus alerts fire:

  • If there is NOT a matching Jira issue, create a new Jira issue
  • If there is a matching Jira issue that is not in DONE status, then:
    • Mark the issue is Done if alert is resolved AND Robusta is configured to send resolved status to Jira
    • Update issue summary/description if alert is not resolved
  • If there is a matching jira issue in DONE status, then:
    • If alert is resolved, there is nothing to do as Jira issue is already done
    • If alert is not resolved then:
      • If re-open issue behavior is active, re-open DONE issue
      • Create a new issue otherwise

Describe alternatives you've considered
I did not found alternatives in Robusta codebase, I was more or less used to what another project does for Prometheus (jiralert) and I'd like to implement them in Robusta

Hi 👋, thanks for opening an issue! Please note, it may take some time for us to respond, but we'll get back to you as soon as we can!

  • 💬 Slack Community: Join Robusta team and other contributors on Slack here.
  • 📖 Docs: Find our documentation here.
  • 🎥 YouTube Channel: Watch our videos here.

This makes a lot of sense, thank you. The diagram is especially helpful.

We will review in more depth soon.

Thanks for the PR @paoloyx