fluent-plugin-grassland

Output filter plugin for Grassland

Gem Version

Notice

本アプリケーションはFluentdのGrassland用プラグインです。 Fluentdをインストールしてからご利用下さい。

GRASSLANDのWebサイトはこちら

Installation

Gemfileに記載する場合

まずGemfileに以下を追記します。

gem 'fluent-plugin-grassland'

次に以下のコマンドを実行します。

$ bundle

直接インストールする場合

以下のコマンドにて、インストールして下さい。

$ gem install fluent-plugin-grassland

Red Hat系OSでtd-agentを利用している場合

fluent-gemでインストールします。 注意: fluent-gemのパスは環境によって異なります。

$ /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-grassland
または、
$ /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-grassland

Usage

Configuration

Fluentdの設定ファイルに以下を追記します。

<source>
  type forward
  port 24224
  bind 127.0.0.1
</source>
<match grassland.**>
  type grassland
  key xxxxxxxxxxxxxxxx
  flush_interval 5
</match>

PHP usage

1. fluent-logger-phpをインストールして下さい。

cat > composer.json << EOF
{
    "require": {
        "fluent/logger": "v0.3.7"
    }
}
EOF
curl -sS https://getcomposer.org/installer | php
php composer.phar install

2. 実際にPHPに記載して下さい。

<?php
require 'vendor/autoload.php';
use Fluent\Autoloader,
    Fluent\Logger\FluentLogger;

Autoloader::register();
$logger = FluentLogger::open("localhost", "24224");

/*** ここまでがfluent-logger-php用の前準備 ***/

$param = array(
    'dt' => 'データID',
    'pt' => '(optional)データの発生時刻(ISO 8601準拠の文字列、又はUnixtimestamp(秒), Ex. "2014-04-01T12:00:00+09:00" or "1432698912")',
    'd' => array(
    '任意のキー1' => array('任意のキー2' => '集計を行いたいデータ'),
        '(optional)任意のキー1' => array('任意のキー2' => '集計を行いたいデータ'),
    ...
    )
);
$logger->post("grassland.data", $param);

ptを省略した場合、fluentdが受け付けた時間のUTC時刻として入力されます。
「任意のキー」は、グラフに表示される一つの要素になります。
例を以下に示します。

//timezone設定
date_default_timezone_set('Asia/Tokyo');

$param = array(
  'dt' => 'd822fab12eeb4db997db87876a082d82',
  'd' => array(
    'itemGroup1' => array('item1' => '100'),
    'itemGroup1' => array('item2' => '200')
  )
);
$logger->post("grassland.data", $param);

Node.js usage

1. fluent-logger-nodeをインストールして下さい。

cat > package.json << EOF
{
  "name": "grassland_test ",
  "version": "0.0.1",
  "dependencies": {
    "fluent-logger": "0.2.6"
  }
}
EOF
npm install

2. 実際にPHPに記載して下さい。

var logger = require('fluent-logger');
logger.configure('grassland', {
   host: 'localhost',
   port: 24224,
   timeout: 3.0
});

/*** ここまでがfluent-loggerの前準備 ***/

var param = {
  dt: 'データID',
  pt: '(optional)データの発生時刻(ISO 8601準拠の文字列 Ex. "2014-04-01T12:00:00+09:00")',
  d: {
    '任意のキー1': {'任意のキー2': '(int)集計を行いたいデータ'},
    '(optional)任意のキー1': {'任意のキー2': '(int)集計を行いたいデータ'}
  }
};
logger.emit('data', param);