/fluent-plugin-typetalk

Fluent plugin to emit notifications to Typetalk

Primary LanguageRubyOtherNOASSERTION

fluent-plugin-typetalk Build Status

Overview

Fluentd plugin to emit notifications to Typetalk.

Requirements

fluent-plugin-typetalk fluentd ruby
>= 0.1.0 >= v0.14.0 >= 2.1
< 0.1.0 >= v0.12.0 >= 1.9

Installation

Install with gem or fluent-gem command as:

# for fluentd
$ gem install fluent-plugin-typetalk

# for td-agent
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-typetalk

Configuration

Usage

This plugin uses client credentials for authentication. See the developer document how to get your own credential.

<match ...>
  @type typetalk
  client_id YOUR_CLIENT_ID
  client_secret YOUR_CLIENT_SECRET
  topic_id YOUR_TOPIC_ID
  message notice: %s [%s] %s errors found
  out_keys tag,time,count
  time_key time
  time_format %Y/%m/%d %H:%M:%S
  tag_key tag
</match>

The notified message will look like this : notice: count.service [2014/05/13 03:34:02] 200 errors found. The meanings of out_keys,time_key,time_format and tag_key are equivalent to those of fluent-plugin-ikachan.

This plugin allows you to use special value namely $hostname in out_keys. By using it, you can include hostname within the notified message.

<match ...>
  @type typetalk
  client_id YOUR_CLIENT_ID
  client_secret YOUR_CLIENT_SECRET
  topic_id YOUR_TOPIC_ID
  message notice: %s [%s] %s errors found on %s
  out_keys tag,time,count,$hostname
  time_key time
  time_format %Y/%m/%d %H:%M:%S
  tag_key tag
</match>

By default, the number of notification you can send within a minute is limited to 10. Log lines that exceed this limit will be discarded. You can change it with interval and limit parameters.

<match ...>
  @type typetalk
  :
  interval 300
  limit 10
</match>

In the example above, you can allow 10 notifications to be sent within 300 seconds. To remove the notification throttle, set both parameters to 0.

Typetalk doesn't allow message which length is equal to or greater than 4000. Since 0.0.5, the message over 4000 characters will be truncated automatically. To turn off this behaviour, set truncate_message to false

<match ...>
  @type typetalk
  :
  truncate_message false
</match>

If you set this value to false, the message over 4000 characters will not be sent to Typetalk.

TODO

Pull requests are very welcome!!

For developers

You have to run the command below when starting development.

$ bundle install --path vendor/bundle

To run tests, do the following.

$ VERBOSE=1 bundle exec rake test

If you want to run a certain file, run rake like this

$ VERBOSE=1 bundle exec rake test TEST=test/plugin/test_out_typetalk.rb

In addition, you can run specific method like this.

$ VERBOSE=1 bundle exec rake test TEST=test/plugin/test_out_typetalk.rb TESTOPTS="--name=test_post_message_invalid_request_error"

When releasing, call rake release as follows.

$ bundle exec rake release

Copyright

  • Copyright (c) 2014- Takashi Someda (@tksmd)
  • Apache License, Version 2.0