<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>jeff blaine - Latest Comments</title><link xmlns="http://www.w3.org/2005/Atom" rel="http://api.friendfeed.com/2008/03#sup" href="http://disqus.com/sup/all.sup#forumcomments-836e7c29" type="application/json"/><link>http://kickflop-blog.disqus.com/</link><description></description><atom:link href="http://kickflop-blog.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 27 Apr 2012 16:06:58 -0000</lastBuildDate><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-512092402</link><description>&lt;p&gt;Hey Mark, by all means feel free to work with MetricLogster. I am not attached to my particular syntax at all and will gladly adapt to any changes you make there.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Fri, 27 Apr 2012 16:06:58 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-507750721</link><description>&lt;p&gt;We've been using logster and Graphite for around nine months now and over the weekend I had a similar idea to you, which I've implemented independently. I'm kicking myself for not thinking of it sooner as I've been frustrated by having to show a number of people how to write Python parsers :)&lt;/p&gt;

&lt;p&gt;Anyway, I'm keen to contribute what I've done back to the project, but I wanted to bounce it off you first. I've done something similar to allow arbitrary counter metrics to be incremented, but also (in the same vein as StatsD) to allow times/durations to be recorded. The difference with the durations is that the median and 90th percentile are calculated and pushed into Graphite rather than the total. I've written a stats helper to calculate these as I didn't want to introduce a dependency on an external Python package (and it's not my first language).&lt;/p&gt;

&lt;p&gt;My intended producer of these logs is Log4J like logs, so the syntax of my log statements has differed. I'm not sure how attached to your syntax you are. What I'm coming to is: should I contribute to your parser or create a whole new one?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark Crossfield</dc:creator><pubDate>Tue, 24 Apr 2012 06:00:05 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-504906058</link><description>&lt;p&gt;That is a really interesting implementation and could prove very useful for people who already have syslog punching through firewalls. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ndietsch</dc:creator><pubDate>Fri, 20 Apr 2012 23:00:30 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-493248799</link><description>&lt;p&gt;Oof! I mistakenly attributed Graphite to Etsy in the original version of this post.&lt;/p&gt;

&lt;p&gt;Orbitz developed Graphite and released it, not Etsy.&lt;/p&gt;

&lt;p&gt;I have updated the post.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Tue, 10 Apr 2012 10:05:23 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-490601435</link><description>&lt;p&gt;Thanks for the bzr info.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sat, 07 Apr 2012 14:27:10 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-490598895</link><description>&lt;p&gt;Scott, I said  "I like using, when possible, what is widely available instead of distributing new package or library dependencies to all nodes in our infrastructure."&lt;/p&gt;

&lt;p&gt;Where did I install a new script on all of our nodes?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sat, 07 Apr 2012 14:25:11 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-490238250</link><description>&lt;p&gt;great post. I'll be employing this strategy to gather request/response time from apache proxy logs.&lt;br&gt;thanks a ton&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ranjib Dey</dc:creator><pubDate>Sat, 07 Apr 2012 08:47:00 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-483912537</link><description>&lt;p&gt;hey man, cool post. two things:&lt;/p&gt;

&lt;p&gt;1. You said you didn't want to have to install another package, but ...you installed another script? Don't see much difference.&lt;br&gt;2. You can submit "pull requests" to graphite without joining graphite-dev. In bazaar it works a bit differently - you just branch the repo and open a ticket requesting a merge.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">scott</dc:creator><pubDate>Mon, 02 Apr 2012 18:25:22 -0000</pubDate></item><item><title>Re: Any-Metric Graphing with Graphite and Syslog</title><link>http://www.kickflop.net/blog/2012/03/30/any-metric-graphing-with-graphite-and-syslog/#comment-482225450</link><description>&lt;p&gt;Great job!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Clif Smith</dc:creator><pubDate>Sat, 31 Mar 2012 17:30:58 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476912281</link><description>&lt;p&gt;I haven't had a chance to blog about it yet, but here's the missing link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/eric/metriks_log_webhook" rel="nofollow"&gt;https://github.com/eric/metrik...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a webhook for Papertrail (&lt;a href="https://papertrailapp.com/" rel="nofollow"&gt;https://papertrailapp.com/&lt;/a&gt; ) that I wrote to take the output of the Metriks Logger reporter (Metriks::Reporter::Logger, documented here: &lt;a href="https://github.com/eric/metriks/wiki/Reporters" rel="nofollow"&gt;https://github.com/eric/metrik...&lt;/a&gt; ) and sends it to Librato Metrics (&lt;a href="http://metrics.librato.com/" rel="nofollow"&gt;http://metrics.librato.com/&lt;/a&gt; ).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eric Lindvall</dc:creator><pubDate>Mon, 26 Mar 2012 20:21:47 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476065956</link><description>&lt;p&gt;I hadn't considered this, Andrew.  Great idea.  If I wanted, as you said, I could keep the parser--&amp;gt;Graphite part completely out of the rsyslog code.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:19:32 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476064711</link><description>&lt;p&gt;Thanks for the link! I'll be watching this later tonight.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:16:52 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476064132</link><description>&lt;p&gt;Thanks for the reply, Nathan. Anything we implement will certainly be in stages, increasing in metric count and frequency over time, while taking note of the impact.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:15:39 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476062211</link><description>&lt;p&gt;Thanks Jason. Nice to hear it's being done and is well-liked. I hadn't considered Logstash as we use Splunk and like it, but it may very well be that we'll use it just as the Graphite writer role.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:11:41 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476060853</link><description>&lt;p&gt;Thanks for the reply, Brian.  I'll definitely dig into Logster.&lt;/p&gt;

&lt;p&gt;I have in fact seen Joe's statsd server implementation index.  I commented there with one implementation that he put on the list ;)  However, it is a good reminder that I need to make sure I get myself up to speed with all of the various offerings in this problem domain. Maybe it's time to revisit the "monitoringsucks" github repo as well.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:08:46 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476058782</link><description>&lt;p&gt;Thanks for the reply, Spike.&lt;/p&gt;

&lt;p&gt;I will definitely look into Logster and consider some ways to implement what I am thinking about with it. We have no special feelings toward rsyslog, a plugin for it (or whatever terminology they may use) was just a first idea for how something like this might be done.  I didn't know about Logster.&lt;/p&gt;

&lt;p&gt;You'll note that I played around with this idea in the past: &lt;a href="http://www.kickflop.net/blog/2010/12/10/any-metric-graphing-with-cron-some-code-syslog-and-splunk/" rel="nofollow"&gt;http://www.kickflop.net/blog/2...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sadly (?), I didn't really take it any further due to Splunk not providing zero-configuration graphs + dashboards like Graphite-web does. There is also the question of whether or not it really makes sense *for us* to be loading down the host with Splunk indexing of a large volume of metric data. Additionally with Splunk, the product cost is based on the amount of daily indexed data, so you end up paying for metrics. [ Don't get me wrong, we really like Splunk and have been using it for 4 years. ]&lt;/p&gt;

&lt;p&gt;Anyway, I'm rambling now.  Thanks again!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 18:04:26 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-476046430</link><description>&lt;p&gt;Troy, thanks for the reply.  Metriks seems to me to be an improved type of StatsD but with multiple possible output destinations instead of just Graphite.  I don't see where syslog plays any real role in Metriks as the transport mechanism. &lt;br&gt;Am I overlooking something?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Sun, 25 Mar 2012 17:39:21 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475987137</link><description>&lt;p&gt;My cohort Eric does something similar. He's released it as a Ruby gem called metriks: &lt;a href="http://bitmonkey.net/post/18854033582/introducing-metriks" rel="nofollow"&gt;http://bitmonkey.net/post/1885...&lt;/a&gt; (gem &lt;a href="https://github.com/eric/metriks)" rel="nofollow"&gt;https://github.com/eric/metrik...&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;He's using it to send metrics about Papertrail's operations to Librato Metrics and graphite. Aside from sending metrics elsewhere, the Ruby process has access to the computed rate and it can update the process name. Having ps show "someworker: 123/second" has been handy.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Troy</dc:creator><pubDate>Sun, 25 Mar 2012 15:43:28 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475722664</link><description>&lt;p&gt;Hey Jeff,&lt;/p&gt;

&lt;p&gt;definitely a sound idea and something I've look at in the past. I've actually done something similar with syslong-ng piping to a script, but it won't scale. The alternative is to rewrite something that understands syslog messages, but then you're back to running non standard components in your infra even tho you're limiting the surface to aggregating nodes.&lt;/p&gt;

&lt;p&gt;About a logster-alike solution, which basically means tailing log files, we've had that scaling pretty well using a daemon mode and is a pretty solid choice. Depending how hard you wanna push the envelope a better choice is, like you suggested, to tweak rsyslog which to me would translate to writing a new module. There's already a variety of plugins, to write to DBs, to write to mongo, etc, so I can easily see how you could write something that writes to graphite with statsd like features (rsyslog supports stuff like batching messages which would suit this use case).&lt;/p&gt;

&lt;p&gt;So the question to me becomes: why would I want something tightly integrated with rsyslog Vs something generic (logster) that can feed off any text(log) file?&lt;/p&gt;

&lt;p&gt;@spikelab &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Spike Morelli</dc:creator><pubDate>Sun, 25 Mar 2012 05:00:02 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475708722</link><description>&lt;p&gt;Hi Jeff,&lt;br&gt;If you want to get metrics out of logs, I second the mentioning of Logster (run on all of your servers) or Logstash (groking against you centralised logs. &lt;/p&gt;

&lt;p&gt;Have you seen this? &lt;a href="http://joemiller.me/2011/09/21/list-of-statsd-server-implementations/" rel="nofollow"&gt;http://joemiller.me/2011/09/21...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still, syslog-ng approach sounds good and certainly better than installing Node all over the place for no other purpose.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br&gt;Brian&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Henerey</dc:creator><pubDate>Sun, 25 Mar 2012 03:56:06 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475658689</link><description>&lt;p&gt;We already do this at Heroku and it's quite popular with our engineers. We're in the process of streamlining many of the emitters and aggregators in our event stream (e.g. syslog is an emitter, Splunk and Graphite are consumers).&lt;/p&gt;

&lt;p&gt;In fact you can already do this today via Logster (&lt;a href="https://github.com/etsy/logster)" rel="nofollow"&gt;https://github.com/etsy/logste...&lt;/a&gt; and Logstash (&lt;a href="http://logstash.net/docs/1.1.0/outputs/graphite)" rel="nofollow"&gt;http://logstash.net/docs/1.1.0...&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Dixon</dc:creator><pubDate>Sun, 25 Mar 2012 00:35:39 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475426575</link><description>&lt;p&gt;Hi Jeff,&lt;/p&gt;

&lt;p&gt;As I said on twitter, your idea is very sound, especially for those of us who already have large syslog infrastructures in play. One thing to consider is that depending on the number of metrics, you may be placing a large amount of load on infrastructure that was not necessarily designed for that purpose.&lt;/p&gt;

&lt;p&gt;This  may be a particular case, but I saw network routers have a particularly hard time with routing large numbers of UDP packets because they were at the bottom of the filter list, but this was a case of a packet storm, not a well defined infrastructure. I would be monitoring the use of said infrastructure as you scale up the number of metrics you are collecting. &lt;/p&gt;

&lt;p&gt;You would want to ensure that the packets remain less than 1536 bytes as I do not think fragmentation would be a particularly pretty scenario either.&lt;/p&gt;

&lt;p&gt;Very eager to see how it turns out as it is a very viable alternative to polling SNMP through a firewall. &lt;/p&gt;

&lt;p&gt;Nathan Dietsch &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ndietsch</dc:creator><pubDate>Sat, 24 Mar 2012 16:19:31 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475418255</link><description>&lt;p&gt;You could write to a pipe from syslog and have your parser read that.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrew Fort</dc:creator><pubDate>Sat, 24 Mar 2012 16:06:49 -0000</pubDate></item><item><title>Re: Specialized Syslog Collector for Metrics via Syslog</title><link>http://www.kickflop.net/blog/2012/03/24/specialized-syslog-collector-for-metrics-via-syslog/#comment-475386703</link><description>&lt;p&gt;Hi,&lt;br&gt;This is basically what is described in this presentation from RubyConf Argentina: &lt;a href="https://vimeo.com/38628915" rel="nofollow"&gt;https://vimeo.com/38628915&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eric-Olivier Lamey</dc:creator><pubDate>Sat, 24 Mar 2012 15:18:40 -0000</pubDate></item><item><title>Re: Django: Taking note of ManyToManyField changes</title><link>http://www.kickflop.net/blog/2012/01/18/django-taking-note-of-manytomanyfield-changes/#comment-419905881</link><description>&lt;p&gt;Here's what I ended up doing today to address this as best as I can, even though it is inefficient to do.  Note that it is pretty implementation-specific, as we're doing something special in our own post_save callback function (pushing the owner object and its relation data into LDAP as an LDIF replace operation):&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;pre&gt;def resave_bc_m2m_changed(sender, **kwargs):&lt;br&gt;    a = kwargs['action']&lt;br&gt;    if a == 'post_add' or a == 'post_remove':&lt;br&gt;        kwargs['instance'].save()&lt;br&gt;        # Don't do anything in pre/post_clear&lt;br&gt;        # for this effort&lt;p&gt;&lt;/p&gt;

&lt;p&gt;m2m_changed.connect(resave_bc_m2m_changed,&lt;br&gt;           sender=Netgroup.interfaces.through,&lt;br&gt;           weak=False)&lt;br&gt;m2m_changed.connect(resave_bc_m2m_changed,&lt;br&gt;           sender=NetgroupContainer.members.through,&lt;br&gt;           weak=False)&lt;br&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Blaine</dc:creator><pubDate>Tue, 24 Jan 2012 16:15:53 -0000</pubDate></item></channel></rss>
