rack-influxdb
This gem provides a Rack middleware for InfluxDB.
Installation
Add this line to your application's Gemfile:
gem 'rack-influxdb'
Then run:
bundle
Usage
Configuration
The Rack::InfluxDB gem can be easily configured
Rack::InfluxDB.configure do |config|
# The name of your measurement
config.name = "http_requests"
# Custom tags
config. = { app: "my-awesome-api", env: "production" }
# The URL of your InfluxDB instance
config.url = "https://test.influxdb.example.com"
# The API token provided by InfluxDB
config.token = "topsecret"
# A lambda that returns a hash containing the fields to write.
# E.g. to just track the HTTP status:
config.fields = lambda { |env, response| return { status: response[0] } }
# Handle errors individually
config.handle_errors = lambda { |err| report_error(err) }
# Options like Org, Bucket and Precision
config. = {
org: 'my-org',
bucket: 'my-bucket',
precision: InfluxDB2::WritePrecision::MILLISECOND
}
# Write options - it's highly recommended to use batching and not
# synchronous writing.
config. = {
write_type: InfluxDB2::WriteType::BATCHING,
batch_size: 1_000
}
end
Basic usage
All you have to do is to include the middleware in your Rack stack.
In Rails:
# config/application.rb
class Application < Rails::Application
...
config.middleware.use Rack::InfluxDB
end