Over a million developers have joined DZone.

Status Checks and SQL Statements via Jenkins

DZone 's Guide to

Status Checks and SQL Statements via Jenkins

· DevOps Zone ·
Free Resource

Does your ops tam have trouble running status updates and SQL statements?  At a recent conference, John Vincent was asked this very question, and wrote a useful tutorial in response.  For those of you who don't know, Vincent is a well-known member of the DevOps community and the creator of NOAH, a nifty application inspired by Apache Zookeeper; you can check it out on GitHub here.  In his tutorial, John Vincent tries to meet the needs of DBA's out there who are looking for a lowtech monitoring method. His approach: Jenkins.

Jenkins is a Java-based open source continuous integration tool that, as Vincent points out, works like cron, another popular time-based job scheduler.  For a simple database health check system, there are three needs, according to Vincent: 

  • performing scheduled tasks
  • running a given command
  • reporting the success or failure of a given command.

He suggests that . . .

. . . there have been numerous posts about people replacing individual cron jobs with a centralized model based on Jenkins. This makes perfect sense and is something of a holy grail.  -- John Vincent

Vincent also provides a small disclaimer by indicating that a Jenkins job is a low-friction way of accomplishing the requested task, and that "it may or may not be scalable in the long run."  The tutorial itself provides a cursory look at the Jenkins menus, and then goes on to provide a solution to the problem of status checks by using a "test case" MySQL database running on a Linux VM.  Luckily for users, the tutorial includes ample code snippets and illustrative images.  At the end, he also provides some "Additional plugins and tips" for the curious developer.   Hopefully, you'll find the tutorial useful - please provide your comments below. 

Source: Lowtech Monitoring With Jenkins by John Vincent


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}