InfluxDBへ保存したFlowServiceのログをGrafanaでグラフにしてみる
前回から
InfluxDBPutコンポーネントを作成して、InfluxDBへFlowServiceのログをInfluxDBへ入れてみました。
データを入れたら時系列データベースですし、グラフにしたくなります。
Grafana
何かお手頃にグラフにできるものということでGrafanaを使ってみます。
https://grafana.com/
アカウントを作ってログインします。
Data Sources で InfluxDB がありますので追加します。
URLだけでつながりそうです。
今回はAWSのインスタンスを使用しているので、つながるようにしておきます。
つながりました。
データの問題
クエリーを試していて気が付きましたが、ログデータが欠落していました。
FlowServiceのログにはよくあることですが、同じ時刻に複数のログを出力しています。
これは問題です・・・
全てのログを入れたいので、保存するデータの時間単位をNanoSecondsにした場合、
timeへMilliSecondsの値を指定すると、こっそりナノ秒を追加して同じ時刻にならないようにPutコンポーネントを修正しました。
if (FIELD_NAME_TIME.equals(name)) {
if (timeUnit.equals(TimeUnit.NANOSECONDS)) {
//nanoはFlowでは無理なので、ここで追加してやる
//timeをDateTimeで指定した場合でもNANOSECONDSであれば、timeが重ならないようにすることができるようにする
//Flowのログ対策
time = fieldValue.longValue() * 1000000;
} else {
fieldTime = fieldValue.longValue();
}
また、タグを指定した場合にInfluxDBのフィールドが予期しない事になるのでタグは指定しないようにしました。
現象:statusフィールドが、statusとstatus_1のフィールドになり、検索できなくなる。
試行錯誤の結果、以下のようなレコードストリームを使用することにしました。
<Record>
<Field name="time" type="String">2019-03-26T09:03:28.012585455Z</Field>
<Field name="code" type="String">AFRM_I_9017</Field>
<Field name="data" type="String">プロセス監視スレッドを起動します</Field>
<Field name="status" type="String">DEBUG</Field>
<Field name="worker" type="String">[framework,main]</Field>
</Record>
使用するログのレコードは7458レコードで、バッチ件数10000に設定したPutコンポーネントで一発で登録します。
グラフ
10分間隔で、3つの棒グラフを並べてみました。
フローの実行開始数のグラフ
SELECT count("status") FROM "test" WHERE ("code" = 'FLEX_I_0001') AND $timeFilter GROUP BY time(10m)
エラー数のグラフ
SELECT count("status") FROM "test" WHERE ("status" = 'ERROR') AND $timeFilter GROUP BY time(10m)
フローの実行終了数のグラフ
SELECT count("status") FROM "test" WHERE ("code" = 'FLEX_I_0002') AND $timeFilter GROUP BY time(10m)
まとめ
なんとかFlowServiceのログをグラフにすることができました。
クエリーでグラフを後から自由に作成できるのはうれしいです。
タグの件は不明なので、もう少し調べたいです。
Author And Source
この問題について(InfluxDBへ保存したFlowServiceのログをGrafanaでグラフにしてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/ArimitsuIshii/items/7677cd977d6dd885a9c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .