Measure::Everything::Adapter::InfluxDB::TCP - Send stats to Influx via TCP using Telegraf
version 1.004
Measure::Everything::Adapter->set( 'InfluxDB::TCP', host => 'localhost', # default port => 8094, # default precision => 'ms' # default is ns (nanoseconds) ); use Measure::Everything qw($stats); $stats->write('metric', 1);
Send stats via TCP to a Telegraf service, which will forward them to InfluxDB. No buffering whatsoever, so there is one TCP request per call to $stats->write. This might be a bad idea.
$stats->write
If TCP listener is not available when set is called, an error will be written via Log::Any. write will silently discard all metrics, no data will be sent to Telegraf / InfluxDB.
set
Log::Any
write
If a request fails no further error handling is done. The metric will be lost.
Set these options when setting your adapter via Measure::Everything::Adapter->set
Measure::Everything::Adapter->set
host
Name of the host where your Telegraf is running. Default to localhost.
localhost
port
Port your Telegraf is listening. Defaults to 8094.
8094
precision
A valid InfluxDB precision. Default to undef (i.e. nanoseconds). Do not set it if you're talking with Telegraf, as Telegraf will always interpret the timestamp as nanoseconds.
Measure::Everything::Adapter::InfluxDB::TCP installs a local handler for SIGPIPE to handle a disconnect from the server. If the server goes away, InfluxDB::TCP will try to reconnect every time a stat is written. As of now (1.003), this behavior is hardcoded.
Measure::Everything::Adapter::InfluxDB::TCP
local
SIGPIPE
InfluxDB::TCP
You might want to check out Measure::Everything::Adapter::InfluxDB::UDP for an even lossier, but more failure tolerant way to send your stats.
See also this blog post, where HJansen provided the correct solution to my problem. Nicholas Clark also pointed me in the right direction (in #Austria.pm)
See "send_metrics.pl" in example for a working example.
Thomas Klausner <domm@plix.at>
This software is copyright (c) 2016 by Thomas Klausner.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Measure::Everything::Adapter::InfluxDB::TCP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Measure::Everything::Adapter::InfluxDB::TCP
CPAN shell
perl -MCPAN -e shell install Measure::Everything::Adapter::InfluxDB::TCP
For more information on module installation, please visit the detailed CPAN module installation guide.