# fluent-plugin-elapsed-time [![Build Status](https://secure.travis-ci.org/sonots/fluent-plugin-elapsed-time.png?branch=master)](http://travis-ci.org/sonots/fluent-plugin-elapsed-time) Fluentd plugin to measure elapsed time to process messages ## Installation Use RubyGems: gem install fluent-plugin-elapsed-time ## Configuration Example: Following example measures the max and average time taken to process [fluent-plugin-grep](https://github.com/sonots/fluent-plugin-grep) => [fluent-plugin-parser](https://github.com/tagomoris/fluent-plugin-parser) => out_stdout chain in messages. Please notice that this plugin measures the total processing time until match chain finishes. ```apache type elapsed_time tag elapsed interval 60 each message type grep exclude foobar add_tag_prefix greped type parse format ltsv key_name message remove_prefix greped add_prefix parsed type stdout type stdout ``` Output will be like ``` elapsed: {"max":1.011,"avg":0.002","num":10} ``` where `max` and `avg` are the maximum and average elapsed times, and `num` is the number of messages. ## Option Parameters * interval The time interval to emit measurement results * each Measure time for each `message` or `es` (event stream). Please notice that the event stream (would be a msgpack) will be unpacked if `message` is specified, which would cause performance degradation. Default is `es`. * tag The output tag name. Default is `elapsed` * add_tag_prefix Add tag prefix for output message * remove_tag_prefix Remove tag prefix for output message * remove_tag_slice *min..max* Remove tag parts by slice function. FYI: This option behaves like `tag.split('.').slice(min..max)`. For example, remove_tag_slice 0..-2 changes an input tag `foo.bar.host1` to `foo.bar`. * aggregate Measure and emit outputs for each `tag` or `all`. Default is `all`. `all` measures `max` and `avg` for all input messages. `tag` measures `max` and `avg` for each tag *modified* by `add_tag_prefix`, `remove_tag_prefix`, or `remove_tag_slice`. ## ChangeLog See [CHANGELOG.md](CHANGELOG.md) for details. ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new [Pull Request](../../pull/new/master) ## Copyright Copyright (c) 2014 Naotoshi Seo. See [LICENSE](LICENSE) for details.