{"id":2866,"date":"2010-09-07T07:53:01","date_gmt":"2010-09-07T05:53:01","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=2866"},"modified":"2010-09-07T07:53:01","modified_gmt":"2010-09-07T05:53:01","slug":"mycheckpoint-rev-190-http-server-interactive-charts","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/mycheckpoint-rev-190-http-server-interactive-charts","title":{"rendered":"mycheckpoint (rev. 190): HTTP server; interactive charts"},"content":{"rendered":"<p>Revision <strong>190<\/strong> of <a href=\"..\/..\/forge\/mycheckpoint\">mycheckpoint<\/a>, a MySQL monitoring solution, has  been released. New and updated in this revision:<\/p>\n<ul>\n<li><strong>HTTP server<\/strong>: <em>mycheckpoint<\/em> can now act as a web server. Point your browser and start browsing through HTML reports. See mock up <a href=\"http:\/\/code.openark.org\/forge\/wp-content\/uploads\/2010\/09\/r190\/mcp_sql00\/sv_report_html_brief.html\"><strong>demo<\/strong><\/a>.<\/li>\n<li><strong>Interactive charts<\/strong>: HTML line charts are now interactive, presenting with accurate data as you move over them. See <a href=\"http:\/\/code.openark.org\/forge\/wp-content\/uploads\/2010\/09\/r190\/mcp_sql00_samples\/sv_report_html_brief.html\"><strong>sample<\/strong><\/a>.<\/li>\n<li><strong>Enhanced auto-deploy<\/strong>: now auto-recognizing failed upgrades.<\/li>\n<li><strong>Reduced footprint<\/strong>: much code taken out of the views, leading to faster loading times.<\/li>\n<li><strong>Better configuration file use<\/strong>: now supporting all command line options in config file.<\/li>\n<li><strong>Remote host monitoring accessibility<\/strong>: now supporting complete configurable accessibility details.<\/li>\n<li><strong>Bug fixes<\/strong>: thanks to the bug reporters!<\/li>\n<\/ul>\n<p><em>mycheckpoint<\/em> is free, simple, easy to use (now easier with HTTP server) and <strong>useful<\/strong>. I encourage you to try it out: even compared with other existing and emerging monitoring tools, I believe you will find it a breeze; it&#8217;s low impact and lightness appealing; it&#8217;s alerts mechanism assuring; its geeky SQL-based nature with ability to drill down to fine details &#8212; geeky-kind-of-attractive.<\/p>\n<p>&lt;\/encouragement&gt;<\/p>\n<h4>HTTP server<\/h4>\n<p>You can now run <em>mycheckpoint<\/em> in <em>http<\/em> mode:<\/p>\n<blockquote>\n<pre>bash$ <strong>mycheckpoint http<\/strong><\/pre>\n<\/blockquote>\n<p><em>mycheckpoint<\/em> will listen on port <strong>12306<\/strong>, and will present you with easy browsing through the reports of your <em>mycheckpoint<\/em> databases.<!--more--><\/p>\n<p>The <em>http<\/em> server automatically detects those schemata used by mycheckpoint, and utilizes the existing HTML views, integrating them into the greater web framework.<\/p>\n<p>While in <em>http<\/em> mode, mycheckpoint does nothing besides serving web pages. It does not actively exercise monitoring: you must still use the usual cron jobs or other scheduled tasks by which you invoke <em>mycheckpoint<\/em> for monitoring.<\/p>\n<p>The http server is directed at a single MySQL server, as with the following example:<\/p>\n<blockquote>\n<pre>bash$ <strong>mycheckpoint --host=slave1.localdomain --port=3306 --http-port=12306 http<\/strong><\/pre>\n<\/blockquote>\n<p>It is assumed that this server has the monitoring schemata.<\/p>\n<p>See mock up <a href=\"http:\/\/code.openark.org\/forge\/wp-content\/uploads\/2010\/09\/r190\/mcp_sql00\/sv_report_html_brief.html\"><strong>demo<\/strong><\/a>. The demo uses presents with real output from a mycheckpoint HTTP server; I haven&#8217;t got the means to put up a live demo.<\/p>\n<h4>Interactive charts<\/h4>\n<p>The <em>openark line charts<\/em>, used in the HTML reports, are now interactive. As you scroll over, the legend presents you with series values.<\/p>\n<p>No more <em>&#8220;I have this huge spike once every 4 hours, which reduces all other values to something that looks like zero but is actually NOT&#8221;<\/em>. Hover, and see the real values.<\/p>\n<p>See <a href=\"http:\/\/code.openark.org\/forge\/wp-content\/uploads\/2010\/09\/r190\/mcp_sql00_samples\/sv_report_html_brief.html\"><strong>sample<\/strong><\/a>.<\/p>\n<h4>Enhanced auto-deploy<\/h4>\n<p>The idea with mycheckpoint is that it should know how to self upgrade the schema on version upgrade (much like automatic WordPress upgrades). mycheckpoint does bookkeeping of installed versions within the database, and upgrades by simple comparison.<\/p>\n<p>It now, following a couple of reported bugs, also recognizes failure of partial, failed upgrades. This adds to the automation of <em>mycheckpoint<\/em>&#8216;s installation.<\/p>\n<h4>Reduced footprint<\/h4>\n<p>Some of <em>mycheckpoint<\/em>&#8216;s views are complicated, and lead to a large amount of code in view declaration. This leads to increased table definition size (large <strong>.frm<\/strong> files). There has been some work to reduce this size where possible. Work is still ongoing, but some 30% has been taken off already. This leads to faster table (view) load time.<\/p>\n<h4>Better configuration file use<\/h4>\n<p>Any argument supported on the command line is now also supported in the config style. Much like is handled with MySQL. For example, one can issue:<\/p>\n<blockquote>\n<pre>mycheckpoint --monitored-host=sql02.mydb.com\u00a0 --monitored-user=monitor --monitored-password=123456<\/pre>\n<\/blockquote>\n<p>But now also:<\/p>\n<blockquote>\n<pre>mycheckpoint<\/pre>\n<\/blockquote>\n<p>With the following in <strong>\/etc\/mycheckpoint.cnf<\/strong>:<\/p>\n<blockquote>\n<pre>[mycheckpoint]\r\nmonitored_host     = sql02.mydb.com\r\nmonitored_user     = monitor\r\nmonitored_password = 123456\r\n<\/pre>\n<\/blockquote>\n<p>Rules are:<\/p>\n<ul>\n<li>If an option is specified on command line, it takes precedence over anything else.<\/li>\n<li>Otherwise, if it&#8217;s specified in the configuration file, value is read from file.<\/li>\n<li>Otherwise use default value is used.<\/li>\n<li>On command line, option format is<strong> xxx-yyy-zzz<\/strong>: words split with dash\/minus character.<\/li>\n<li>On configuration file, option format is <strong>xxx_yyy_zzz<\/strong>: words split with underscore. Unlike MySQL configuration format, dashes cannot be used.<\/li>\n<li>If an option is specified multiple times on configuration file &#8212; well &#8212; I have the answer, but I won&#8217;t tell. Just don&#8217;t do it. It&#8217;s bad for your health.<\/li>\n<\/ul>\n<h4>Future plans<\/h4>\n<p>Work is going on. These are the non-scheduled future tasks I see:<\/p>\n<ul>\n<li>Monitoring InnoDB Plugin &amp; XtraDB status.<\/li>\n<li>A proper <em>man<\/em> page.<\/li>\n<li>Anything else that interests me &amp; the users.<\/li>\n<\/ul>\n<h4>Try it out<\/h4>\n<p>Try out <em>mycheckpoint<\/em>. It\u2019s a different kind of monitoring   solution. Simple monitoring (charting) is immediate. For more interesting results you will need basic SQL skills, and in return you\u2019ll get a lot   of power under your hands.<\/p>\n<ul>\n<li>Download mycheckpoint <a href=\"https:\/\/code.google.com\/p\/mycheckpoint\/\">here<\/a><\/li>\n<li>Visit the project\u2019s <a href=\"..\/..\/forge\/mycheckpoint\">homepage<\/a><\/li>\n<li>Browse the <a href=\"..\/..\/forge\/mycheckpoint\/documentation\">documentation<\/a><\/li>\n<li>Report <a href=\"https:\/\/code.google.com\/p\/mycheckpoint\/issues\/list\">bugs<\/a><\/li>\n<\/ul>\n<p><em>mycheckpoint<\/em> is released under the <a href=\"http:\/\/www.opensource.org\/licenses\/bsd-license.php\">New BSD  License<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Revision 190 of mycheckpoint, a MySQL monitoring solution, has been released. New and updated in this revision: HTTP server: mycheckpoint can now act as a web server. Point your browser and start browsing through HTML reports. See mock up demo. Interactive charts: HTML line charts are now interactive, presenting with accurate data as you move [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[46,49,57,31,50,40],"class_list":["post-2866","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-monitoring","tag-mycheckpoint","tag-open-source","tag-python","tag-scripts","tag-web"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-Ke","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=2866"}],"version-history":[{"count":27,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2866\/revisions"}],"predecessor-version":[{"id":2936,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/2866\/revisions\/2936"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=2866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=2866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=2866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}