<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Metricfire</title>
	<atom:link href="http://blog.metricfire.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.metricfire.com</link>
	<description>Metricfire Blog - Powerful Application Metrics Made Easy</description>
	<lastBuildDate>Wed, 19 Sep 2012 06:51:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Videos from first Node.js meetup in Dublin</title>
		<link>http://blog.metricfire.com/2012/05/videos-from-first-node-js-meetup-in-dublin/</link>
		<comments>http://blog.metricfire.com/2012/05/videos-from-first-node-js-meetup-in-dublin/#comments</comments>
		<pubDate>Mon, 28 May 2012 20:22:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=254</guid>
		<description><![CDATA[Thanks to Cian O&#8217;Maidin, the videos from the first Node.js meetup in Dublin are available! A couple of weeks ago, we presented a short (~15m) talk about how we use Node.js to render Javascript charts to SVG and PNG images. &#8230; <a href="http://blog.metricfire.com/2012/05/videos-from-first-node-js-meetup-in-dublin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="https://twitter.com/cianomaidin">Cian O&#8217;Maidin</a>, the <a href="http://nodejsdublin.com/17052012.html">videos from the first Node.js meetup in Dublin</a> are available!</p>
<p>A couple of weeks ago, we presented a short (~15m) talk about how we use Node.js to render Javascript charts to SVG and PNG images.</p>
<p>At this event, we announced three things:</p>
<ul>
<li>Open sourcing <a href="https://github.com/metricfire/dali">Dali, our daemon for executing Highcharts</a></li>
<li>Open sourcing <a href="https://github.com/metricfire/deb-npm-autopackage">deb-npm-autopackage, a little script for making .deb packages from npm modules</a></li>
<li>Our official <a title="Node.js Client for Metricfire" href="http://blog.metricfire.com/2012/05/node-js-client-for-metricfire/">Node.js client for Metricfire</a></li>
</ul>
<div>Watch the video for some details on how and why we run Highcharts server-side under Node.js, what we liked/didn&#8217;t like about Node, and for the open sourcing announcement.</div>
<p><iframe src="http://www.youtube.com/embed/4cuJdJkPGbo" frameborder="0" width="420" height="315"></iframe></p>
<p>Sorry about the poor audio &#8211; hopefully we&#8217;ll have a better recording setup for the next event.</p>
<p>In case you&#8217;re wondering, yes, that is our <a title="Building the Big Red Button" href="http://blog.metricfire.com/2012/05/building-the-big-red-button/">Big Red Button</a> being used as a slide advancing tool. :D</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/05/videos-from-first-node-js-meetup-in-dublin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building the Big Red Button</title>
		<link>http://blog.metricfire.com/2012/05/building-the-big-red-button/</link>
		<comments>http://blog.metricfire.com/2012/05/building-the-big-red-button/#comments</comments>
		<pubDate>Thu, 24 May 2012 16:45:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=240</guid>
		<description><![CDATA[Everyone loves our giant red button. We&#8217;ve used it at three events so far &#8211; a Dublin Beta startup demo evening, our PyCon 2012 booth, and most recently as the most awesome slide advancing controller ever at the first Node.js &#8230; <a href="http://blog.metricfire.com/2012/05/building-the-big-red-button/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/metricfire_button.png"><img class="aligncenter size-full wp-image-106" title="Metricfire's Big Red Button" src="http://blog.metricfire.com/wp-content/uploads/2012/02/metricfire_button.png" alt="Metricfire's Big Red Button" width="400" height="324" /></a>Everyone loves our <a title="How do you demo back-end technology to less technical people?" href="http://blog.metricfire.com/2012/02/how-do-you-demo-back-end-technology-to-less-technical-people/">giant red button</a>. We&#8217;ve used it at three events so far &#8211; a <a href="http://dublinbeta.com/">Dublin Beta startup demo evening</a>, our <a title="Metricfire at PyCon 2012" href="http://blog.metricfire.com/2012/01/metricfire-at-pycon-2012/">PyCon 2012 booth</a>, and most recently as the most awesome slide advancing controller ever at the first <a href="http://nodejsdublin.com/">Node.js meetup in Dublin</a>.</p>
<p>We get a lot of questions about how we made it and how it talks to the computer. It&#8217;s about time we did a little show and tell, with lots of pictures and code!</p>
<div id="attachment_246" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/09181-05-L.jpg"><img class="size-medium wp-image-246" title="SparkFun's Big Dome Push Button" src="http://blog.metricfire.com/wp-content/uploads/2012/05/09181-05-L-300x300.jpg" alt="" width="300" height="300" /></a><p class="wp-caption-text">Image from SparkFun.com - go buy one of their buttons!</p></div>
<p>The main element, the actual button, is one of <a href="http://www.sparkfun.com/products/9181">SparkFun&#8217;s &#8220;Big Dome Push Button&#8221;</a> units. Two of these have been sitting in Charlie&#8217;s electronics parts boxes for a year or so, waiting for just the right project.</p>
<p><strong>Inside the button</strong></p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/buttoninnards.jpg"><img class="aligncenter size-large wp-image-248" title="Button innards" src="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.35.02-1024x575.jpg" alt="" width="584" height="327" /></a></p>
<p>&nbsp;</p>
<div id="attachment_245" class="wp-caption aligncenter" style="width: 594px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/usbkeypadpcb.jpg"><img class="size-large wp-image-245" title="USB keypad PCB" src="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.38.191-1024x575.jpg" alt="" width="584" height="327" /></a><p class="wp-caption-text">PCB from a small USB numeric keypad</p></div>
<p><img class="size-medium wp-image-243 alignleft" title="USB numeric keypad" src="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.43.26-168x300.jpg" alt="" width="168" height="300" /></p>
<p>The second major component is deceptively simple and cheap &#8211; the PCB from a small USB numeric keypad. Modern membrane keyboards have a row of contacts that mate with the flexible plastic sheets with conductive traces that form the key contact points.</p>
<p>After some trial and error with a piece of wire, you can identify the pair of contacts that correspond to any key on the keyboard. If you solder those up to a big push-to-make switch, you&#8217;re basically done. A press of the big button will cause the controller board to send a USB keyboard event to the OS.</p>
<p>&nbsp;</p>
<div id="attachment_249" class="wp-caption alignright" style="width: 156px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.36.55.jpg"><img class="size-medium wp-image-249 " title="Button LED" src="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.36.55-146x300.jpg" alt="" width="146" height="300" /></a><p class="wp-caption-text">1W white LED on a custom mount</p></div>
<p>A little poking around with a multimeter will find you a good point on the PCB to pull 5v to power the light inside the button. Though SparkFun now sell a version with an LED, our one used an older incandescent bulb, which requires 12v and would probably draw more power than the keyboard controller was designed for. Charlie built a suitably <a href="http://www.urbandictionary.com/define.php?term=shonky">shonky</a> mount for a 1W white LED and it replaced the incandescent bulb.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="attachment_247" class="wp-caption alignleft" style="width: 310px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/sticker-button.jpg"><img class="size-medium wp-image-247 " title="Putting the Metricfire logo sticker inside the button" src="http://blog.metricfire.com/wp-content/uploads/2012/05/2012-05-24-01.40.20-300x168.jpg" alt="" width="300" height="168" /></a><p class="wp-caption-text">Vinyl sticker inside the button</p></div>
<p>How&#8217;d we get our logo in there? We had some spare vinyl stickers for the backs of our macbooks, and one just happened to fit perfectly inside the button. If you need excellent decals/stickers, talk to <a href="http://www.etsy.com/people/jefffogg">Jeff and Neece</a> of <a href="http://www.etsy.com/shop/SmartDecals">SmartDecals</a> and tell them Metricfire sent you!</p>
<p><img class="alignright size-medium wp-image-242" title="Grotty concrete-encrusted wooden plank" src="http://blog.metricfire.com/wp-content/uploads/2012/05/DSCF1666-300x225.jpg" alt="" width="300" height="225" /></p>
<p>After that, the easy bit was making a wooden case for the whole thing. A grotty concrete-encrusted wooden plank turned out to make a solid enclosure, once it was cleaned up a bit!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Where&#8217;s the code?</strong></p>
<p>As promised, there&#8217;s some code involved here. Sometimes, having the button appear to the OS as a regular <a href="http://en.wikipedia.org/wiki/Human_interface_device">HID</a> keyboard is undesirable. When we&#8217;re demoing our (almost) real-time graphs and dashboards at events like Dublin Beta and PyCon, we don&#8217;t want button presses to be interpreted by the browser running the demo. We need something a little deeper catching those button presses so we can generate metric events.</p>
<p>For this, we use Python, libusb, and some hardcoded magic numbers. The code:</p>
<p><script src="https://gist.github.com/2778605.js"></script></p>
<p>So there you go. If you&#8217;d like a Big Red Button of your own, you have complete instructions and sample code. Quick, to the workshop!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/05/building-the-big-red-button/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Node.js Client for Metricfire</title>
		<link>http://blog.metricfire.com/2012/05/node-js-client-for-metricfire/</link>
		<comments>http://blog.metricfire.com/2012/05/node-js-client-for-metricfire/#comments</comments>
		<pubDate>Wed, 23 May 2012 00:34:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=219</guid>
		<description><![CDATA[We&#8217;re big fans of Node.js here at Metricfire &#8211; our open source highcharts rendering service Dali is written in Node and we&#8217;ve been happily using it in production for several months. As I prepared this blog post, my co-founder Charlie &#8230; <a href="http://blog.metricfire.com/2012/05/node-js-client-for-metricfire/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/05/nodejs.png"><img class="size-medium wp-image-220 aligncenter" title="nodejs - It's nice!" src="http://blog.metricfire.com/wp-content/uploads/2012/05/nodejs-300x102.png" alt="" width="300" height="102" /></a>We&#8217;re big fans of Node.js here at Metricfire &#8211; our open source highcharts rendering service <a title="Dali - Open source highcharts image rendering" href="https://github.com/metricfire/dali">Dali</a> is written in Node and we&#8217;ve been happily using it in production for several months. As I prepared this blog post, my co-founder Charlie was giving a talk over the other side of the world at the first <a title="Node JS Dublin" href="http://www.nodejsdublin.com/">Node JS Dublin</a> meetup and it seems as good a time as any to announce our <a title="Node JS Metricfire Client" href="http://docs.metricfire.com/#s-node-js-client">Node.js client for Metricfire</a>.</p>
<p>As with our other clients, this is a fast non-blocking client that will not compromise the speed of your application and allow you to send thousands of events per second.</p>
<p>We&#8217;ve already found our Node client useful &#8211; it helped us identify a memory leak: <a href="http://blog.metricfire.com/wp-content/uploads/2012/05/node_memory_usage1.png"><img class="aligncenter size-full wp-image-225" title="Node.js memory usage" src="http://blog.metricfire.com/wp-content/uploads/2012/05/node_memory_usage1.png" alt="" width="607" height="160" /></a></p>
<p>This sort of &#8220;up and to the right&#8221; behaviour is desirable in many things, but not memory usage. The code for getting this data out of Node and sending it to Metricfire is very simple:</p>
<p><script src="https://gist.github.com/2772494.js"></script></p>
<p>Our node.js client can be <a href="http://search.npmjs.org/#/metricfire">installed right from npm</a>:</p>
<pre>$ npm install metricfire</pre>
<p>If you like documentation, you can find it on <a href="https://docs.metricfire.com/#s-node-js-client">docs.metricfire.com</a>, along with docs for all the other client libraries and the HTTP API.</p>
<p>Check out our <a title="Metricfire free trial" href="http://www.metricfire.com/pricing/">free trial</a> and see how you can easily measure and graph what&#8217;s happening in your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/05/node-js-client-for-metricfire/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Feature &#8211; Metric Deletion</title>
		<link>http://blog.metricfire.com/2012/05/new-feature-metric-deletion/</link>
		<comments>http://blog.metricfire.com/2012/05/new-feature-metric-deletion/#comments</comments>
		<pubDate>Wed, 09 May 2012 17:40:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[deletion]]></category>
		<category><![CDATA[metric]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=200</guid>
		<description><![CDATA[Behind the scenes in Metricfire we&#8217;re constantly at work building new features and improving old ones, but a feature we&#8217;ve deliberately held back on until now is the ability to delete a metric. Our philosophy is that you should measure &#8230; <a href="http://blog.metricfire.com/2012/05/new-feature-metric-deletion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Behind the scenes in Metricfire we&#8217;re constantly at work building new features and improving old ones, but a feature we&#8217;ve deliberately held back on until now is the ability to delete a metric. Our philosophy is that you should measure everything that your application does, and figure out the most useful data points later. That said, it&#8217;s human nature that mistakes will happen when creating a metric &#8211; typos in a metric name, test sites sending data you&#8217;re not interested in, or anything else that creates metrics that aren&#8217;t useful to you.</p>
<p>We&#8217;ve finally added an interface to quickly and easily determine which metrics are not used, and then delete them. A simple spark line chart will show whether the metric has been collecting data, and a summary screen will tell you whether it&#8217;s used on any graphs before you make a decision to remove it.</p>
<p>Just select &#8220;Apps and Data&#8221; from the main navigation menu and you&#8217;ll see all your applications, metrics, and a spark line of the data from each.  See our <a title="Metricfire Pricing" href="http://www.metricfire.com/pricing/" target="_blank">30-day free trial</a> and try it for yourself.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/05/new-feature-metric-deletion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing pricing and general availability!</title>
		<link>http://blog.metricfire.com/2012/04/announcing-pricing-and-general-availability/</link>
		<comments>http://blog.metricfire.com/2012/04/announcing-pricing-and-general-availability/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 15:39:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Features]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=174</guid>
		<description><![CDATA[For the last few months we&#8217;ve been working with users on our beta list to tweak our features based on their feedback. We&#8217;re now ready to open our 30-day free trial to the public, and release details of our prices. &#8230; <a href="http://blog.metricfire.com/2012/04/announcing-pricing-and-general-availability/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_196" class="wp-caption alignright" style="width: 310px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/04/MetricFire_stickers.jpg"><img class="size-medium wp-image-196" title="Metricfire stickers!" src="http://blog.metricfire.com/wp-content/uploads/2012/04/MetricFire_stickers-300x200.jpg" alt="" width="300" height="200" /></a><p class="wp-caption-text">Image credit: stickermule.com</p></div>
<p>For the last few months we&#8217;ve been working with users on our beta list to tweak our features based on their feedback. We&#8217;re now ready to open our 30-day free trial to the public, and release <a href="https://www.metricfire.com/pricing/">details of our prices</a>.</p>
<p>We&#8217;re building a tool aimed at developers who need the flexibility of instant metrics, but who either don&#8217;t want the trouble of setting up a server, or are in an environment where it&#8217;s just not possible for them. We have three paid plans, and we&#8217;re willing to talk to non-profits, students, or open source projects about free accounts.</p>
<p>Our <a title="Metricfire Pricing" href="http://www.metricfire.com/pricing/" target="_blank">developer plan</a> is designed to provide enough metrics and capacity for any small project, with all the benefits of our fast client APIs, our HTTP API and embeddable graphs.</p>
<p>Our <a title="Metricfire Pricing" href="http://www.metricfire.com/pricing/" target="_blank">small business plan</a> is designed to compete with the cost of buying or renting a server, then setting up a metrics tool, securing it, ensuring it&#8217;s backed up properly, tweaking the inevitable things that happen to a server over the course of a year and all the time that a sysadmin or devops person could be spending automating something else.</p>
<p>Our <a title="Metricfire Pricing" href="http://www.metricfire.com/pricing/" target="_blank">enterprise</a> offering is designed as a fully hosted metrics service to rival a custom system, and it will handle as much as you want to send us. (Billions of data-points per day is no problem &#8211; talk to us!)</p>
<p>Some thoughts on why you might want to use a hosted version:</p>
<p>Take the cost of setting up an Amazon server which needs to run 24/7, getting a dedicated server rented, or racking and co-locating one of your own. Add on the time it takes your sysadmin to evaluate, install and then configure whatever metrics system you eventually decide on. Even if they&#8217;re some sort of ninja rock-star unicorn, that&#8217;s probably going to be a day of tinkering. You want it done right though, so they have to spend another day making sure it&#8217;s backed up properly, and that there&#8217;s a redundant copy somewhere so that all your delicious metrics don&#8217;t disappear into the void when something goes wrong. You&#8217;ve possibly doubled your server costs, and tacked on several expensive days of salary, but it&#8217;s done.</p>
<p>Now you&#8217;re finally ready to send some metrics! Fast-forward six months down the line and unfortunately you&#8217;ve run in to some sort of problem but the person who set up the metric collector is busy working on that important normal stuff that keeps your company making money. Or if we throw another spanner in the works, maybe they left the company, and someone now has to spend a few days figuring out how the system works &#8211; essentially starting from scratch?</p>
<p>We&#8217;ve been there, and it&#8217;s exactly why we started Metricfire. Replace the mess above with quick integration using a fast API that handles all the scaling, replication, and backups for you and save on time and money. We think it&#8217;s the way to go (even if we&#8217;re a little biased&#8230;). <a title="Metricfire" href="http://www.metricfire.com">Try our free 30-day trial</a>.</p>
<p><strong>Thanks to the beta testers!</strong></p>
<p>It took us a long time to get here, and we have to thank our beta testers for helping us get this far. We&#8217;re immensely grateful for your time and all the effort you put in to help us improve Metricfire. We&#8217;ve offered a discount via email to anyone who signed up to our beta, as well as stickers to anyone who wants &#8216;em (while they last&#8230;),  just drop us a mail with where you want <a href="http://www.stickermule.com/gallery/21">your stickers </a>sent!</p>
<p>- Dave and Charlie</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/04/announcing-pricing-and-general-availability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing SmokePing with a very small shell script</title>
		<link>http://blog.metricfire.com/2012/04/replacing-smokeping-with-a-very-small-shell-script/</link>
		<comments>http://blog.metricfire.com/2012/04/replacing-smokeping-with-a-very-small-shell-script/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 16:04:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=163</guid>
		<description><![CDATA[For a while, I ran a small IRC bot for keeping the members of a local hackerspace informed about when the space is open for visitors. This bot needed to check a status page every minute or so. The problem was that for &#8230; <a href="http://blog.metricfire.com/2012/04/replacing-smokeping-with-a-very-small-shell-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For a while, I ran a <a href="https://github.com/derpston/sesamebot">small IRC bot</a> for keeping the members of a local <a href="http://www.tog.ie/">hackerspace</a> informed about when the space is open for visitors. This bot needed to check a <a href="http://tog.ie/cgi-bin/space">status page</a> every minute or so.</p>
<p>The problem was that for a few days there were regular connection problems. The server running the bot couldn&#8217;t connect to the server hosting the status page. The error messages weren&#8217;t helpful &#8211; just connect() timeouts. To try to better understand the intermittent problem, I wanted to measure the latency and connectivity between these hosts on an ongoing basis.</p>
<p>The natural choice for long term latency measurement is, of course, <a href="http://oss.oetiker.ch/smokeping/" rel="nofollow">SmokePing</a>.</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/04/smokeping-demo1.png"><img class="aligncenter size-full wp-image-165" title="smokeping-demo" src="http://blog.metricfire.com/wp-content/uploads/2012/04/smokeping-demo1.png" alt="" width="682" height="315" /></a></p>
<p>The only trouble is <a title="To be fair, this is a particularly bad installation example. :)" href="http://www.how2centos.com/installing-smokeping-on-centos-5-5/">the amount of effort involved in installing SmokePing</a>, configuring it, configuring a httpd to serve the content and run a Perl CGI, keep the content private, etc. None of that is hard, but it is certainly annoying and I was not interested. I wanted to measure latency between two machines, not spend a good half hour, if lucky, setting up all that.</p>
<p>So I used Metricfire instead. I wrote a one line snippet of shell script to make 20 ICMP ping requests, format the latency results, and send it to Metricfire&#8217;s <a href="https://docs.metricfire.com/#s-sending-metric-data">HTTP API</a>.</p>
<p>I handed that off to cron to run once a minute, and now you can see the complete recipe:</p>
<pre style="font-size: 80%;">* * * * * curl -s https://my-api-key-redacted@api.metricfire.com/v1/m\
etric/smokecheap/tog-dot-ie --data-binary "[$(ping -c 20 tog.ie | awk \
'/bytes from/{print $8}' | cut -b6-10 | xargs | tr ' ' ',')]"</pre>
<p>After a little clicking around, I had a graph of the min/avg/max latency between these two machines.</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/04/smokecheap-mf.png"><img class="aligncenter size-full wp-image-168" title="Latency from huggl.es to tog.ie" src="http://blog.metricfire.com/wp-content/uploads/2012/04/smokecheap-mf.png" alt="" width="437" height="257" /></a></p>
<p>The whole thing took less than five minutes. It&#8217;s obviously not as complete as SmokePing, but it gave me the result I wanted with a fraction of the effort. 80% of the functionality with much less work. I&#8217;m pretty satisfied with that.</p>
<p>The twist to the story is that the intermittent connectivity problem disappeared before I got a chance to observe it! Definitely glad I didn&#8217;t set up SmokePing just for this. If it happens again I&#8217;ll be ready with this historical data to help me spot patterns.</p>
<p>- Charlie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/04/replacing-smokeping-with-a-very-small-shell-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Paul Graham consistently says &#8216;um&#8217; ~7 times per minute</title>
		<link>http://blog.metricfire.com/2012/03/paul-graham-consistently-says-um-7-times-per-minute/</link>
		<comments>http://blog.metricfire.com/2012/03/paul-graham-consistently-says-um-7-times-per-minute/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 12:30:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=140</guid>
		<description><![CDATA[We just got back from demoing our tech at PyCon 2012, which was a blast. We didn&#8217;t make it to see many talks because we spent almost all our time in the expo hall showing and telling. This expo/conference balance &#8230; <a href="http://blog.metricfire.com/2012/03/paul-graham-consistently-says-um-7-times-per-minute/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We just got back from demoing our tech at PyCon 2012, which was a blast. We didn&#8217;t make it to see many talks because we spent almost all our time in the expo hall showing and telling. This expo/conference balance sucks a bit, so I wanted to catch up on some of the talks. I started with watching the video of <a href="https://twitter.com/paulg">Paul Graham</a> discussing seven frighteningly ambitious startup ideas. (<a href="http://paulgraham.com/ambitious.html">essay</a>, <a href="http://pyvideo.org/video/628/keynote-paul-graham-ycombinator">pycon video</a>, <a href="http://www.youtube.com/watch?v=R9ITLdmfdLI">youtube</a>) It&#8217;s a great talk, go check it out!</p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/03/pg-bigger-pycon.png"><img class="size-medium wp-image-142" title="pg-bigger-pycon" src="http://blog.metricfire.com/wp-content/uploads/2012/03/pg-bigger-pycon-300x195.png" alt="" width="300" height="195" /></a><p class="wp-caption-text">&quot;Boy, this is a lot bigger than the last PyCon I talked at... um...&quot;</p></div>
<p>Within the first couple of minutes, I noticed that Paul was using so-called <a href="http://en.wikipedia.org/wiki/Speech_disfluency">disfluencies</a> such as &#8220;um&#8221; quite often. I wondered if he was a little nervous, but that didn&#8217;t seem likely for someone in his position. Was he going to get more comfortable later? Hard to know because I&#8217;d tune out the disfluencies as I listened so I couldn&#8217;t trust myself to notice the trend. To answer this silly question for myself, I decided I&#8217;d measure the occurrences of &#8220;um&#8221; and &#8220;uh&#8221; while I watched.</p>
<p>I whipped up a <a href="https://gist.github.com/2db8a6ebd212145d6062/22806acde9aa698ea39d2a8a1601aef699927d50">quick script</a> to help me log this data and, of course, send it to Metricfire (via the <a title="Sending data to Metricfire with the HTTP API" href="https://docs.metricfire.com/#s-sending-metric-data">HTTP API</a>) so I can get a pretty graph.</p>
<p>Here&#8217;s what I found:</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 524px"><a href="http://blog.metricfire.com/wp-content/uploads/2012/03/pg-um.png"><img class="size-full wp-image-141 " title="Occurrences of 'um' and 'uh' in Paul Graham's PyCon 2012 talk" src="http://blog.metricfire.com/wp-content/uploads/2012/03/pg-um.png" alt="" width="514" height="252" /></a><p class="wp-caption-text">The X axis time labels do not match the talk video times, but when I happened to watch the video and log the datapoints.</p></div>
<p>During the main part of PG&#8217;s 32 minute talk, (excluding questions) it looks like he said &#8220;um&#8221; and &#8220;uh&#8221; just under 225 times. 224, to be exact. This isn&#8217;t very interesting in itself, but the consistent rate indicates that he probably wasn&#8217;t very nervous and that this is just his presentation style.</p>
<p>There are some small wobbles &#8211; the rate levelled off a bit when he was talking about <a title="Killing Hollywood" href="http://ycombinator.com/rfs9.html">killing Hollywood</a> because this is clearly an issue he has given some thought to before. I suppose his thoughts were more organised on that topic and we see fewer disfluencies as a result. This is a logical and unsurprising conclusion, but it is interesting to see this visually in the data.</p>
<p>224 &#8220;um&#8221;s over 32 minutes is about 7 times per minute. How does this compare with other talks PG has given, and with other speakers? Do I use as many disfluencies? I don&#8217;t know. The next time I watch a PG talk I&#8217;ll repeat the experiment, and I&#8217;d be interested to see similar analysis done on other speakers and myself.</p>
<p>This isn&#8217;t exactly the high volume of backend application performance data Metricfire is intended to capture, but it was fun to think about. :)</p>
<p>- Charlie</p>
<p>Updated 12th March 13:35 PST: Adding Youtube video link because the PyCon video link isn&#8217;t working.</p>
<p>Updated 18th March 11:40 PST: <a href="http://paulgraham.com/speak.html">Paul Graham writes about speaking skills</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/03/paul-graham-consistently-says-um-7-times-per-minute/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>New Feature &#8211; Graph Image Embedding</title>
		<link>http://blog.metricfire.com/2012/02/new-feature-graph-image-embedding/</link>
		<comments>http://blog.metricfire.com/2012/02/new-feature-graph-image-embedding/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 18:02:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[graph embedding]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=117</guid>
		<description><![CDATA[While we&#8217;re delighted if you want to use our dashboards for your reporting needs, we also realize that a lot of people have their own internal reporting and dashboarding setups, or just want to share a graph quickly with someone &#8230; <a href="http://blog.metricfire.com/2012/02/new-feature-graph-image-embedding/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While we&#8217;re delighted if you want to use our dashboards for your reporting needs, we also realize that a lot of people have their own internal reporting and dashboarding setups, or just want to share a graph quickly with someone else.</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/embed_menu_item.png"><img class="size-full wp-image-118 alignleft" title="Metricfire embed menu option" src="http://blog.metricfire.com/wp-content/uploads/2012/02/embed_menu_item.png" alt="Metricfire embed menu option" width="124" height="156" /></a> Next to your graph&#8217;s action menu, you&#8217;ll find the new &#8216;Embed&#8217; option, which will give you a URL to a static image of that graph. You can configure some simple options such as the image size and the format &#8211; we&#8217;re providing the graph data in PNG or SVG formats for you to play with. This URL is unauthenticated and you can use it anywhere, like embed it into your own dashboards, your back-end admin system, or put it on a big TV in your office.</p>
<p>The tech side of it is a slight departure from the rest of our codebase in that we&#8217;re using server-side javascript in the form of <a title="Node.js" href="http://nodejs.org/" target="_blank">node.js </a>to convert our existing front-end graphing tools into image data. What&#8217;s amazing (to me at least) is the amount of code reuse; with minimal code changes to our front-end javascript we can keep the rich interactive graph stuff in powerful browsers and also get simple images to embed anywhere.</p>
<p>Here&#8217;s what the embedding interface looks like:</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/mf_embed_dialog.png"><img class="aligncenter size-full wp-image-125" title="mf_embed_dialog" src="http://blog.metricfire.com/wp-content/uploads/2012/02/mf_embed_dialog.png" alt="" width="631" height="436" /></a></p>
<p>Using the URL provided you get access to the resulting graph as an image:</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/cache_hits_v_misses1.png"><img class="alignleft size-full wp-image-137" title="Metricfire - Example embedded graph" src="http://blog.metricfire.com/wp-content/uploads/2012/02/cache_hits_v_misses1.png" alt="Metricfire - Example embedded graph" width="500" height="200" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The ability to embed graphs wherever you want is just one of many new features currently undergoing testing. Check out how we can help you <a title="Metricfire - Application Metrics as a Service" href="http://www.metricfire.com/" target="_blank">measure application performance</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/02/new-feature-graph-image-embedding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>37Signals on Metrics</title>
		<link>http://blog.metricfire.com/2012/02/37signals-on-metrics/</link>
		<comments>http://blog.metricfire.com/2012/02/37signals-on-metrics/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 19:24:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[metrics]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=113</guid>
		<description><![CDATA[37Signals had a fantastic blog post last week detailing their internal metrics service they use for all their products. After using a larger stats package, they moved to a custom system for all of the reasons that we&#8217;ve created Metricfire: &#8230; <a href="http://blog.metricfire.com/2012/02/37signals-on-metrics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/37signals_icon.jpg"><img class="alignleft size-full wp-image-130" title="37signals Logo" src="http://blog.metricfire.com/wp-content/uploads/2012/02/37signals_icon.jpg" alt="37signals Logo" width="75" height="75" /></a><a title="37signals App Metrics" href="http://37signals.com/svn/posts/3091-pssst-your-rails-application-has-a-secret-to-tell-you">37Signals</a> had a fantastic blog post last week detailing their internal metrics service they use for all their products. After using a larger stats package, they moved to a custom system for all of the reasons that we&#8217;ve created <a href="http://www.metricfire.com/">Metricfire</a>:</p>
<blockquote><p>While we still use some of those tools today, we found ourselves wanting more – more information about the distribution of timing, more control over what’s being measured, a more intuitive user interface, and more real-time access to data when something’s going wrong.</p>
<p>&nbsp;</p></blockquote>
<p>We&#8217;re pleased to see that the reasons they moved away from existing tools, and the design decisions they made in their own system are not a million miles away from our own. We&#8217;re also using stats delivery over UDP, and instant aggregations of min, max, sum, observations, standard deviation &#8211; as well as data transformations baked in which make other statistical information like moving averages available without you having to mess with code.</p>
<p>We started Metricfire to solve the &#8216;Everything in One Place&#8217; problem where you try to get several systems designed for different purposes working together to produce a holistic service that covers the whole problem. Generally, it either doesn&#8217;t work or just takes too long and leaves you with plenty of quirks to work around. We&#8217;re taking care of the entire chain, from where you want to know how a certain part of your app is performing, right up to the point at which you wake someone up in the middle of the night.</p>
<p>It&#8217;s interesting to get this sort of perspective (and validation) from a company like 37Signals. Let us know how we can help you get the same sort of application monitoring for your own systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/02/37signals-on-metrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do you demo back-end technology to less technical people?</title>
		<link>http://blog.metricfire.com/2012/02/how-do-you-demo-back-end-technology-to-less-technical-people/</link>
		<comments>http://blog.metricfire.com/2012/02/how-do-you-demo-back-end-technology-to-less-technical-people/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 19:43:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[dublin beta]]></category>
		<category><![CDATA[interactive]]></category>

		<guid isPermaLink="false">http://blog.metricfire.com/?p=100</guid>
		<description><![CDATA[When we tell people we&#8217;re enabling developers to measure the performance of their systems, we get a range of reactions. Developers dive into the technical questions &#8211; Will it slow down my app? Do you have a client library in &#8230; <a href="http://blog.metricfire.com/2012/02/how-do-you-demo-back-end-technology-to-less-technical-people/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When we tell people we&#8217;re enabling developers to measure the performance of their systems, we get a range of reactions. Developers dive into the technical questions &#8211; Will it slow down my app? Do you have a client library in $FAVOURITE_LANGUAGE? Non-techie people just get a sort of faraway look on their face where presumably they&#8217;re trying to figure out what the hell a cloud service is, or why people need to measure things, or if all this stuff has something to do with the internet.</p>
<p>Charlie spent some time at the <a href="http://dublinbeta.com/">Dublin BETA event</a> the other night, and this sort of uncertainty was something we wanted to address right from the start. So how do you relate a back-end abstraction in a way that anyone can get? Well &#8211; here&#8217;s our attempt:</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/metricfire_button.png"><img class="aligncenter size-full wp-image-106" title="Metricfire's Big Red Button" src="http://blog.metricfire.com/wp-content/uploads/2012/02/metricfire_button.png" alt="Metricfire's Big Red Button" width="400" height="324" /></a>The analogy we&#8217;re trying to draw is that the button represents some misbehaving server lounging around out on the internet somewhere. Every time one of the people who stop by our demo booth hits the button, it&#8217;s mimicking this server doing something worth hearing about. In this instance we&#8217;re only recording the number and duration of button pushes, but it&#8217;s not a huge leap to grok that you can send just about any measurement you want &#8211; API response times, pots of coffee brewed per hour, number of failed user logins, or memory usage on your machine hitting some nasty threshold you would probably want to know about.</p>
<p>From our button pushes we put together a simple graph:</p>
<p><a href="http://blog.metricfire.com/wp-content/uploads/2012/02/dublinbeta_button_presses.png"><img class="aligncenter size-full wp-image-108" title="Metricfire Button Presses at Dublin Beta" src="http://blog.metricfire.com/wp-content/uploads/2012/02/dublinbeta_button_presses.png" alt="Metricfire Button Presses at Dublin Beta" width="634" height="194" /></a>This is a collation of all the data taken on the night, our live graph reacted immediately to the button. It&#8217;s not the most complicated or detailed graph in existence, but it&#8217;s a very useful way for people who stop by our booth to get immediate feedback on what our software does. Overall the reaction was great, and numerous times it involved a &#8220;Oh! I have to get $X to come see this, he&#8217;s been looking for something to do this!&#8221;, which was encouraging.</p>
<p>We&#8217;re going to improve our button test for PyCon, stop by and give it a push!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metricfire.com/2012/02/how-do-you-demo-back-end-technology-to-less-technical-people/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
