Umbrtonic
Gem for transferring Active Support Instrumentation events
to the InfluxDB database via UDP without boilerplate code.
Installation
Add this line to your application's Gemfile:
gem 'umbrtonic'
And then execute:
$ bundle
Or install it yourself as:
$ gem install umbrtonic
Configuration
Under the hood Umbrtonic uses Qonfig gem.
By default, gem sends data to 127.0.0.1:8089. You are able to change this easily:
Umbrtonic.configure do |conf|
conf.influxdb.host = "another.machine"
conf.influxdb.port = 4444
end
Using a custom prefix
Optionally you are able to set a prefix:
Umbrtonic.configure do |conf|
conf.prefix = "my_app"
end
For example, when you subscribe to actions
,
points to InfluxDB will be sent as my_app_actions
.
Alternatively, it is possible to configure with file:
production:
prefix: custom
influxdb:
host: 127.0.0.1
port: 8094
and then load configuration:
Umbrtonic.config.load_from_yaml(
Rails.root / "config" / "umbrtonic.yml",
expose: Rails.env
)
Usage
Umbrtonic.bind("process_action.action_controller") do |inf, event, payload|
inf.values(
count: 1,
duration: event.duration,
db_runtime: event.payload[:db_runtime],
)
inf.tags(
controller: payload[:controller],
action: payload[:action],
)
end
Gem provides instance of InfluxDB data builder
and information about the event and payload for quick access:
Umbrtonic.bind("process_action.action_controller") do |inf, event, payload|
event.name
event.duration
event.payload
payload
end
See more information about Active Support Notifications
here
You are able to set custom name for event:
Umbrtonic.bind("process_action.action_controller", measurement: "actions") do |inf, event, payload|
end
In this example events will be sent as actions
.
There is complete list of
Ruby on Rails hooks
Contributing
Bug reports and pull requests are welcome on GitHub
at https://github.com/umbrellio/umbrtonic.