and 1 contributors


Net::StatsD::Client::Telegraf - Send data to the statsd plugin of telegraf, with support for influxDB's tagging system


  use Net::Statsd::Client::Telegraf;
  my $stats = Net::Statsd::Client->new(prefix => "service.frobnitzer.", tags => { job => "my_program" } );
  $stats->increment("requests", tags => { foo => "bar" }, sample_rate => 0.2 );
  my $timer = $stats->timer("request_duration");
  # ... do something expensive ...
  my $elapsed_ms = $timer->finish;


Net::StatsD::Client::Telegraf is a tiny layer on top of Net::StatsD::Client to add support for tags as implemented by the statsd collector of telegraf. Defaults tags can be passed as a hashref in the tags attributes, each methods also accept a tags arguments to add tags for the current statsd call


Net::Statsd::Client::Telegraf takes the exact same parameters as Net::StatsD::Client, plus an additionnal tags, for the documentation of the other attribute of the constructor, please refer to Net::StatsD::Client


Optional: A hashref containing key values to be used as tags in the metrics name, as accepted by influxDB and telegraf


Being a layer on top of Net::Statsd::Client, Net::Statsd::Client::Telegraf exposes the exact same methods, the only difference begin in the parameters, for all of its methods, Net::Statsd::Client accepts an optional parameter sample_rate, instead Net::Statsd::Client::Telegraf accept a lsit of options in key value format The key being sample_rate and tags.

    tags => {
      name1 => "value1",
      name2 => "value2",
    sample_rate => 0.2

$stats->increment($metric, [%options] )

Increment the named counter metric.

$stats->decrement($metric, [%options] )

Decrement the named counter metric.

$stats->update($metric, $count, [%options] )

Add $count to the value of the named counter metric.

$stats->timing_ms($metric, $time, [%options] )

Record an event of duration $time milliseconds for the named timing metric.

$stats->timer($metric, [%options] )

Returns a Net::Statsd::Client::Timer object for the named timing metric. The timer begins when you call this method, and ends when you call finish on the timer. Calling finish on the timer returns the elapsed time in milliseconds.

$stats->gauge($metric, $value, [%options] )

Send a value for the named gauge metric. Instead of adding up like counters or producing a large number of quantiles like timings, gauges simply take the last value sent in any time period, and don't require scaling.

$statsd->set_add($metric, $value, [%options] )

Add a value to the named set metric. Sets count the number of *unique* values they see in each time period, letting you estimate, for example, the number of users using a site at a time by adding their userids to a set each time they load a page.


This module is a tiny layer on top of Net::Stats::Client, to add the tags functionality


Pierre VIGIER <pierre.vigier@gmail.com>


Copyright 2018- Pierre VIGIER


This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.