Pumpkin monitoring with Jira Ops, StatusPage and OpsGenie

Pumpkins are big thing during October. Pumpkins line the streets, guard our porches and create a beacon of light to find your way home. The glow and smell of a lightly warmed pumpkins with a candle inside is something that brings back great memories of October and Halloween. Its all fun and games though, until your pumpkin starts to show signs of degradation and soon melts into a pile of slop on your porch. If only there was a way to detect when your pumpkins public presentation was up to par and no major pumpkin service interruption was existent.

We have come up with a very basic monitoring solution for this very problems, we call it “Speedy Pumpkin Optical Outlook Kaleidoscope Yabber” or SPOOKY for short. Let us explain how it works.

First you need a pumpkin, any pumpkin will do (carved or not). That pumpkin will then be monitored by a physical camera attached to a Raspberry Pi device. This camera will snap images every 5 minutes and compare the image back to a master desired pumpkin image. If the Raspberry Pi’s scripts detect a major delta between the master and the recent pumpkin status update then it will trigger an API call out to Jira Ops to create an issue. From there, Jira Ops will update StatusPage to ensure there is full transparency on your pumpkins performance and any pumpkins issues are quickly presented for the world to see. Soon after StatusPage has been updated, Jira Ops will then make a call out to OpsGenie. From here OpsGenie will handle the alert routing based on your call schedule and notify the current On-Call Pumpkin Engineer.

 

Here is our workflow for pumpkin monitoring:
Pumpkingram.png

 

Example Jira Ops and OpsGenie screens:

 

image-20181029-123259.png

image-20181029-122449.pngIMG_2618.PNG

 

We believe that using our monitoring methods that you will be able to accomplish the following:

  • Constant pumpkin updates

  • Availability of pumpkin status

  • No pumpkin porch rot

  • Desired pumpkin performance

  • Youthful delight of perfect pumpkins

Not only will this solution ensure you have CANDY, it will also have additional applications for the following:

  • Physical device monitoring (Check lights on a server and detect changes).

  • Access and entry detection with alert generation

  • Record events by generating alerts with screen shots

  • Tactical package delivery notifications

  • Yielded significant improvements in automation

With Jira Ops, StatusPage and OpsGenie you will have the full suite of tools needed to accomplish your operational goals. This suite will help with ensuring you have maximum up time, faster recovery, and detailed and transparent alerting.

Ensuring we completed the circle, no incident can be completed without an Incident response plan. Wether is is responding to an incident or completing an incident postmortem, we have a handbook to help you along they way. Check out the Atlassian Jira Ops Handbook.

Interested in how Jira Ops and OpsGenie integrate? View the full documentation here: Jira Ops to OpsGenie integration

Interested in how Jira Ops and Status Page integrate? View the full documentation here: Jira Ops to Status Page

Want to see how we really detected changes in our Pumpkins status? Check out the code example below (we used Python in this example):

# package imports
import skimage.measure as ssim
from jira import JIRA
import cv2

# Images to use
master_image = cv2.imread("master.jpg")
webcam_image = cv2.imread("webcam.jpg")

# Jira configuration
jira_username = "jac@olant.ern"
jira_token = "7r1ck0r7r347"
jira = "https://pumpkins.atlassian.net"

# Jira issue setup - modify these values to match your project
def make_dict(delta):
issue_dict = {
'project': {'key': 'MFJOP'},
'summary': 'Pumpkin problem!',
'description': 'An issue with the pumpkin has been detected. Your pumpkin has a delta of '+ str(delta),
'issuetype': {'name': 'Incident'},
'customfield_10037': {'value': '1 - Critical'}
}
return issue_dict

auth_jira = JIRA(jira,basic_auth=(jira_username, jira_token))

def compare_images(master, webcam):
return ssim.compare_ssim(master, webcam)

# Convert images to greyscale
master = cv2.cvtColor(master_image, cv2.COLOR_BGR2GRAY)
webcam = cv2.cvtColor(webcam_image, cv2.COLOR_BGR2GRAY)

delta = compare_images(master, webcam)

# Check if the images differ beyond concern, and trigger a Jira issue if they do
if delta < 0.8:
# call jira
new_issue = auth_jira.create_issue(fields=make_dict(delta))
print "Jira issue sent"
else:
# Do nothing
print "CANDY PARTY"

Credits for Article:

@Elias Zeidan , @Daniel Eads , @Stephen Sifers

0 comments

Comment

Log in or Sign up to comment
Community showcase
Asked Dec 06, 2018 in Jira Ops

I'm John Allspaw, Ask Me Anything about incident analysis and postmortems

I'm John Allspaw, co-founder of   Adaptive Capacity Labs, where we help teams use their incidents to learn and improve. We bring research-driven methods and approaches to drive effective inciden...

8,603 views 23 17
View question

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you