lusis / sensu_influxdb_handler Goto Github PK
View Code? Open in Web Editor NEWA sensu handler for sending metrics to influxdb
License: Other
A sensu handler for sending metrics to influxdb
License: Other
/etc/sensu/extensions/influx.rb:18:in post_init': undefined method
[]' for nil:NilClass (NoMethodError)
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-extension-1.1.2/lib/sensu/extension.rb:21:in block in initialize' from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:959:in
call'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:959:in block in run_deferred_callbacks' from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:956:in
times'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:956:in run_deferred_callbacks' from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in
run_machine'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in run' from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/lib/sensu/server/process.rb:23:in
run'
from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/bin/sensu-server:10:in <top (required)>' from /opt/sensu/bin/sensu-server:23:in
load'
from /opt/sensu/bin/sensu-server:23:in `
Hi I get the following error after configuration.
{"timestamp":"2014-08-18T13:14:04.221609+0000","level":"error","message":"InfluxDB: Error posting event - ["/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/influxdb-0.1.8/lib/influxdb/client.rb:151:in write_point'\", \"/etc/sensu/extensions/influx.rb:49:in
run'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-extension-1.0.0/lib/sensu/extension.rb:99:in safe_run'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:307:in
block (2 levels) in handle_event'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:206:in call'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:206:in
block in mutate_event_data'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-extensions-1.0.0/lib/sensu/extensions/mutators/json.rb:16:in run'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-extension-1.0.0/lib/sensu/extension.rb:99:in
safe_run'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:227:in mutate_event_data'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:253:in
block in handle_event'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:238:in each'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:238:in
handle_event'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:437:in block (4 levels) in process_result'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-redis-unified-0.5.0/lib/em-redis/redis_protocol.rb:457:in
call'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-redis-unified-0.5.0/lib/em-redis/redis_protocol.rb:457:in dispatch_response'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-redis-unified-0.5.0/lib/em-redis/redis_protocol.rb:411:in
process_cmd'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/em-redis-unified-0.5.0/lib/em-redis/redis_protocol.rb:385:in receive_data'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-em-2.4.0/lib/eventmachine.rb:187:in
run_machine'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-em-2.4.0/lib/eventmachine.rb:187:in run'\", \"/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/lib/sensu/server.rb:13:in
run'", "/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.13.1/bin/sensu-server:10:in <top (required)>'\", \"/opt/sensu/bin/sensu-server:23:in
load'", "/opt/sensu/bin/sensu-server:23:in `
please consider deprecating this repo in favor of https://github.com/seegno/sensu-influxdb-extension ?
I have this extension installed on my rhel 6 server sensu 0.12 with rvm 2.1, and 1.9.3 and the influxdb, timeout and the rubygems gems installed and when I restart the sensu-server I get the following in the logs, what am I doing wrong?
{"timestamp":"2014-05-22T00:34:00.654791-0400","level":"error","message":"failed to require extension","extension_file":"/etc/sensu/extensions/handlers/influx.rb","error":{"path":"influxdb","~mesg":"cannot load such file -- influxdb","~bt":["/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in require'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
require'","/etc/sensu/extensions/handlers/influx.rb:3:in <top (required)>'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
require'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in require'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:31:in
block in require_directory'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:29:in each'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:29:in
require_directory'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/base.rb:59:in extensions'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:24:in
initialize'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:13:in new'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:13:in
run'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/bin/sensu-server:10:in <top (required)>'","/opt/sensu/bin/sensu-server:23:in
load'","/opt/sensu/bin/sensu-server:23:in `
Hi,
I'm using Influxdb v0.8.8 with this handler.
this handler created a Serie with the same plugin name, exemple:
metric_cpu_pcnt
with the columns below:
time sequence_number value host metric
1421090211000 193692360001 1 i.5e2e894b.lb.tnt.portal.core.uat.sa.east.1.test.net lb.tnt-portal.core.uat.sa-east-1.cpu.total.user
I would like be a query to find a CPU consume per host like this:
select value from "metric_cpu_pcnt" where host =~ /^i.5e2e894b/ AND metric =~ /cpu.total.user$/ and time > now() - 15m;
This query is very slow because when the query use regex in the columns the regex needs to be match for EVERY measurement, and measurements for ALL "metrics" needs to be loaded.
Why this extension work this away?
The correct are not this: (serie name = hostname + metric) ?
series name: i.5e2e894b.lb.tnt-portal.core.uat.sa-east-1.cpu.total.user , columns: [time, value]
Because:
when the query use regex on the series names, not the column values, the series names are in memory in influxdb and the lookup and regex mach is quick as it only needs to be done once.
tks
Joao
I have done a "gem install influxdb", and i setup my /etc/sensu/handlers/metrics.json to look like the example. Is there something else I'm missing in this error or in the requirements?
From sensu-server log:
{"timestamp":"2014-06-24T08:30:31.857970-0700","level":"error","message":"failed to require extension","extension_file":"/etc/sensu/extensions/influx.rb","error":{"path":"influxdb","~mesg":"cannot load such file -- influxdb","~bt":["/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in require'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
require'","/etc/sensu/extensions/influx.rb:4:in <top (required)>'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
require'","/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in require'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:31:in
block in require_directory'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:29:in each'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/extensions.rb:29:in
require_directory'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/base.rb:59:in extensions'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:24:in
initialize'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:13:in new'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/lib/sensu/server.rb:13:in
run'","/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.12.6/bin/sensu-server:10:in <top (required)>'","/opt/sensu/bin/sensu-server:23:in
load'","/opt/sensu/bin/sensu-server:23:in `
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.