<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 15, 2015 at 6:04 PM Steve Wray <<a href="mailto:steve@wtfast.com">steve@wtfast.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">We are gathering both system performance metrics (eg cpu directly from collectd) as well as application performance metrics (eg an application sends some of its internal performance metrics to collectd via the statsd input).</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">We'd like these to go into graphite with different prefixes eg the system performance metrics should go under eg server.sys. and application metrics should go under eg app.statsd.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I've been looking at chains and I'd thought that this should do something like what we need:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><div class="gmail_default"><LoadPlugin cpu></div><div class="gmail_default">  Globals false</div><div class="gmail_default"></LoadPlugin></div><div><br></div></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace"><LoadPlugin statsd></font></div><div class="gmail_default"><font face="monospace, monospace">  Globals false</font></div><div class="gmail_default"><font face="monospace, monospace"></LoadPlugin></font></div><div class="gmail_default"><span style="font-family:monospace,monospace"><Plugin statsd></span><br></div><div class="gmail_default"><font face="monospace, monospace">  Host "0.0.0.0"</font></div><div class="gmail_default"><font face="monospace, monospace">  Port 8125</font></div><div class="gmail_default"><span style="font-family:monospace,monospace"></Plugin></span><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div><div class="gmail_default" style="font-family:monospace,monospace"># This should be the default write, it should get the stats from the cpu plugin:</div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><Plugin write_graphite></font></div><div class="gmail_default"><font face="monospace, monospace"><Node "collectd_graphite"></font></div><div class="gmail_default"><font face="monospace, monospace">  Host "our.graphite.server"</font></div><div class="gmail_default"><font face="monospace, monospace">  Port "2003"</font></div><div class="gmail_default"><font face="monospace, monospace">  # it goes under server.sys.</font></div><div class="gmail_default"><font face="monospace, monospace">  Prefix "server.sys."</font></div><div class="gmail_default"><span style="font-family:monospace,monospace">  Protocol "tcp"</span><br></div><div class="gmail_default"><font face="monospace, monospace"></Node></font></div><div class="gmail_default"><span style="font-family:monospace,monospace"></Plugin></span><br></div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace"># This should catch writes from statsd and send them to collectd with the app.statsd. prefix. </div><div style="font-family:monospace,monospace"># It should not get the cpu stats as that doesn't come via statsd</div></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">LoadPlugin "match_regex"</font></div><div class="gmail_default"><span style="font-family:monospace,monospace"><Chain "PreCache"></span><br></div><div class="gmail_default"><font face="monospace, monospace">  <Rule></font></div><div class="gmail_default"><font face="monospace, monospace">    <Match "regex"></font></div><div class="gmail_default"><font face="monospace, monospace">      Plugin "^statsd$"</font></div><div class="gmail_default"><font face="monospace, monospace">    </Match></font></div><div class="gmail_default"><font face="monospace, monospace">    <Target "write"></font></div><div class="gmail_default"><font face="monospace, monospace">      <Plugin "write_graphite"></font></div><div class="gmail_default"><font face="monospace, monospace">        <Node "collectd_graphite"></font></div><div class="gmail_default"><font face="monospace, monospace">          Host "our.graphite.server"</font></div><div class="gmail_default"><font face="monospace, monospace">          Port "2003"</font></div><div class="gmail_default"><font face="monospace, monospace">          Prefix "app.statsd."</font></div><div class="gmail_default"><font face="monospace, monospace">          EscapeCharacter "."</font></div><div class="gmail_default"><font face="monospace, monospace">          Protocol "tcp"</font></div><div class="gmail_default"><font face="monospace, monospace">        </Node></font></div><div class="gmail_default"><font face="monospace, monospace">      </Plugin></font></div><div class="gmail_default"><font face="monospace, monospace">    </Target></font></div><div class="gmail_default"><font face="monospace, monospace">    Target "stop"</font></div><div class="gmail_default"><font face="monospace, monospace">  </Rule></font></div><div class="gmail_default"><font face="monospace, monospace">   Target "write"</font></div><div class="gmail_default"><font face="monospace, monospace"></Chain></font></div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">Whats actually happening is that the statsd data is being sent to graphite with the server.sys. prefix.</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">Any advice on using Chains would be helpful.</div></div></div></blockquote><div><br></div><div>What if you use a consistent prefix when sending metrics to statsd, like "statsd."<br><br></div><div>Then, use the replace target  (e.g. <a href="https://collectd.org/wiki/index.php/Target:Replace">https://collectd.org/wiki/index.php/Target:Replace</a>) to swap server.sys.statsd.* to app.statsd.*<br><br></div><div>Giovanni<br></div></div></div>