InfluxDBから現在の数値を取得してPythonで出力する

スポンサーリンク

InfluxDBからPythonで例として現在のCPUを使っているユーザー数を取得するのにハマったのでメモ。

InfluxDBからリストで取得後にPandasでデータフレームにして取得する。

以下のようにするとうまくいった。PythonのパッケージInfluxdbとpandasが必要。

最終的にうまく行った方法

InfluxDBの中のTelegrafのCPUデータを取得してUser数の数値のみを取得する。最終的に温度・湿度・水温などを取得してE-インクに表示させたい。

結果は以下のように数値のみ取得できた。

この数値のみ取得するのがなかなか難しかった。PHP+MySQLだったらかなり簡単にできる操作だけど・・・Pythonって面倒な言語なの?InfluxDBが特殊なDBなのかな?

Pythonパッケージ InfluxDB インストール

インストール

まずはInfluxDBにPythonから接続するためにpipでパッケージインストールする。

InfluxDBからデータ取得テスト

接続のところInfluxDBClientはadminのパスワード入れなくても接続できた。Selectのみなのでエラーにならないのかな?

Selectはほぼ他のDBのクエリーと一緒の構文でクエリーを発行できた。

結果

jsonの配列では無い?みたい。result[‘cpu’][‘usage_user’]などとしてもうまく取り出せない。

これをどうにかして「2.298263534221487」のみ取り出したい。

pandas plot

pandasにグラフ機能もあるというのでついでにやってみる。

・・・作成中

Pythonパッケージ pandas インストール

pandasを使うとデータフレームに変更できるみたい。

pandasについてはこちらで詳しく説明されていました。

pandasによるデータ処理メモ pandasに関する情報ページはわりと豊富なので、主にリンクのまとめです。 # 実行環境 実行環境は、Jupyter(IPython) Notebook を使うのが良いと思います。 [Windo...

インストール

インストールがなかなか終わらなく、失敗するときもあった。

pandas使ってみる

以下のようにつくってみた。

結果

以下のようになった。数値のみ欲しい場合はdf.usage_user[0]でうまく取得できた。

参考

ちょっと苦戦したのでメモ。 このブログを参考にinfluxDBにBitcoinの値段のデータを入れていたんですが、 pythonで分析す
Contribute to nkmk/python-snippets development by creating an account on GitHub.

もっといいやり方あったら教えてくださると大喜びしますm(_ _)m

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする