質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
InfluxDB

InfluxDBは、InfluxDataによって開発された時系列データベースです。オープンソースであり、Go言語で記述されています。

Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

Q&A

解決済

1回答

3441閲覧

Fluentd in-execの複数出力をInfluxDBへ挿入

moonphase

総合スコア6621

InfluxDB

InfluxDBは、InfluxDataによって開発された時系列データベースです。オープンソースであり、Go言語で記述されています。

Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

0グッド

0クリップ

投稿2017/01/13 08:15

編集2017/01/21 00:57

###前提・実現したいこと
MySQLデータベースに登録されている任意の名前の果物の数をfluentdで10分毎に取得し、InfluxDBに入れたい。

###発生している問題・エラーメッセージ

  • 入力元データ
$ MYSQL_PWD=pass mysql -N -umysql database -e "SELECT name, count FROM data WHERE ..." +-----------+----+ | apple | 98 | | orange | 50 | | pineapple | 20 | +-----------+----+

influxdbには実行タイミング毎に、最後の行のデータのみ挿入される。

  • InfluxDBの内容
> use test; Using database test > select * from data name: data time name value ---- ---- ----- 1484292300000000000 pineapple 20 1484292360000000000 pineapple 20 1484292420000000000 pineapple 20
  • 期待するInfluxDBの内容
> use test; Using database test > select * from data name: data time name value ---- ---- ----- 1484292300000000000 apple 98 1484292360000000000 orange 50 1484292420000000000 pineapple 20

該当のソースコード

  • td-agent.conf
<source> @type exec tag raw_data # count.shは先のmysqlコマンドを記載したもの command /path/to/count.sh | cat run_interval 1m format tsv keys name,value </source> <match row_data> @type typecast item_types value:integer tag data </match> <match data> @type influxdb host localhost port 8086 dbname test user root password pass time_precision s flush_interval 10s </match>

###試したこと

ファイルに出力した場合は欲しいデータが入っている事を確認。

  • td-agent.conf
... <match data> @type file path /tmp/count.txt </match>
$ cat /tmp/count.txt 2017-01-13T07:57:22+00:00 data {"name":"apple","value":98} 2017-01-13T07:57:22+00:00 data {"name":"orange","value":50} 2017-01-13T07:57:22+00:00 data {"name":"pineapple","value":20} 2017-01-13T08:07:23+00:00 data {"name":"apple","value":98} 2017-01-13T08:07:23+00:00 data {"name":"orange","value":50} 2017-01-13T08:07:23+00:00 data {"name":"pineapple","value":20}

###補足情報(言語/FW/ツール等のバージョンなど)

$ dpkg -l | grep td-agent ii td-agent 2.3.3-0 amd64 Treasure Agent: A data collector for Treasure Data $ td-agent --version td-agent 0.12.29 $ dpkg -l | grep influxdb ii influxdb 1.1.1-1 amd64 Distributed time-series database.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました。
InfluxDBはtimestampでユニークな為一つのseriesに同じtimestampでは一つしかデータが入らなかった。

  • sequence_tagを指定でsequence_number付きでtimestamp,sequence_numberをユニークキーとしてデータ投入可能
<match data> @type influxdb host localhost port 8086 dbname test user root password pass time_precision s flush_interval 10s sequence_tag sequence_number </match>
  • 今回の場合はsequenceではなくnameをtag_keyとしてデータを投入した
<match data> @type influxdb host localhost port 8086 dbname test user root password pass time_precision s flush_interval 10s tag_keys name </match>

投稿2017/01/21 01:03

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問