###前提・実現したいこと
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.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。