LogstashRails
Send events from Rails to Logstash without logger foo.
LogstashRails uses ActiveSupport::Notifications
to subscribe to events from Rails and push them to Logstash.
It emmits json formatted Logstash::Event
.
There is no Logger
configuration, logfile or filter in Logstash required.
Contents
Usage
Add logstash-rails to your applications Gemfile
gem 'logstash_rails'
and provide an initializer for configuration.
Configuration
LogstashRails.config
takes an options hash with the following options:
- transport
redis, logstash-udp and logstash-tcp are available atm
- logger
logger to use in case of exceptions while pushing events to the transport
- events
list of event name patterns to subscribe to. Regex
and String
is
supported.
- flatten_params
true, false Flatten params hash. This gets rid of collisions in dynamic mappings in ElasticSearch.
- transport options
transport specific options that should be self explaining:
redis:
- host
- port
- redis_key
logfile:
- logfile
logstash-tcp:
- host
- port
logstash-udp:
- host
- port
Examples
The most basic configuration looks like:
LogstashRails.config(transport: :redis)
This will connect to a redis server on localhost:6379, use logstash as key for the redis list to push to and subscribe to all events.
A more complete example looks like:
if Rails.env.production?
LogstashRails.config(
transport: :redis,
host: '1.2.3.4',
port: 12345,
redis_key: 'my_key',
events: [/action_controller/]
)
end
This will only subscribe to events from ActionController
.
Contributing
- Fork it.
- Create a branch (
git checkout -b my_feature
) - Commit your changes (
git commit -am "Added ..."
) - Push to the branch (
git push origin my_feature
) - Open a Pull Request
- Enjoy a refreshing Orangina and wait
License
Licensed under the GNU General Public License version 3 (GPLv3). See LICENSE.txt for details.