Raspberry PiのCPU温度のグラフ化ツール、tmchkの更新:ver0.02

この度、tmchkのバージョンアップを行いました。

以下のオプションが追加されています。tmchkについては以下のページに使い方、仕様、実行結果などをまとめています。

https://www.thunsuke.com/index.php/blog/thun-tmchk-explanation/

githubのURLも併せて置いておきます。

https://github.com/T-H-Un/tmchk

変更内容

今回のアップデートでは以下のオプションを追加することで、グラフを分割するオプションを実装しました。これを利用することで、今まで一つにまとめられていた、CPU温度、CPU使用率、CPU動作周波数の3つのパラメータを別々に出力できます。

--separate

なので、利用する際は以下のような構文で利用します。

tmchk [サンプリング周期(整数、秒)] [ログを取得する時間(整数、分)] [出力pngファイルのフルパス] (--separate)

今回は実装の都合になるのですが、今のところは"--separate"オプションを使う際は、一番最後の引数として使わないとエラーになります(ver0.02b現在)。なので以下のような使い方がダメな例となります。

ダメな例
tmchk --separate 1 2 /hoge/huga/test.png  //エラー
tmchl 1 1 --separate /hoge/hoge/test.png  //エラー
正しい例
tmchk 1 1 /hoge/hoho/test.png --separate

現状のバージョンはver0.02bですが、0.02aはグラフタイトルなど他の数か所に不具合があったので修正してver0.02aはすぐに変更となりました。

現状のver0.02bでは"--separate"オプション使用時の出力ファイルをどれかに指定することができないようになっています。なので指定すると、合計で4つのグラフが出力される仕様になっています。

  • CPU温度
  • CPU使用率
  • CPU動作周波数
  • 上記3つのパラメータを一つにまとめたもの(ver0.01と同じグラフ)

また各ファイルの名前は以下のように対応しています。

CPU温度ファイル名+CPU_temperature.png
CPU動作周波数ファイル名+CPU_frequency.png
CPU使用率ファイル名+CPU_usage.png
上記3つをまとめたもの指定したファイル名そのまま
対応表

同様の説明をtmchkの総合説明である最初のリンクの記事に書いています。あちらの記事はgithubからリンクしている説明書みたいなものなので、個別の更新ページには細かい内容などを書き残しておきます。

細かいことですが、各エラー状態にエラーコードを振っておきました。今後プログラムが肥大化したときなどにエラーコードがあることで多少はどこではまっているかや原因があるかを突き止めやすくする開発側の意図と、ユーザー側でも原因がわかりやすくしようという意図があります。

今後の予定

あとは今後の予定になりますが、csvによるデータのアウトプットを考えています。簡単にグラフ化し、図を作成できるのがtmchkの強みではありますが、取得したデータを別の形で利用したい場合や細かい数字が知りたいという場合もあるかと思うのでこの機能の実装を予定しています。またその機能の実装時に考えますが、画像出力を行わずログファイルのみの出力も需要がありそうでしたら次以降のどこかのバージョンで実装するかもしれません。一応説明しておきますが、csvはデータファイルのフォーマットの一種で某社の緑色のイメージのあの有名な表計算ソフトで開くことができます。csvはオプションとしての機能ではなく、デフォルトで出力される設定にしようと思います。必要なければ、csvを出力しないオプションも実装しようかと考えています。これも次の次以降のバージョンで検討するオプションです。

必要であれば、どれか一つのグラフだけ出力するオプションを実装する予定です。需要がありそうだと思えないとやりません。ただ、パラメータは多くて困るということもないと思うのと、内部の動作的にはグラフの出力は、ログデータを取得した後に作成しているため、負荷についてはどのデータを使っても、それほどかからないようになっています。

これ以外にも現在は出力をファイルとして書きこむ操作をしていて、I/Oやディスクへの負荷があるのでこれを最適化しようと考えています。ほかのオプションが追加されたときの挙動なども少し変更しようかと思っています。

最後の検討事項は、最低実行単位は記録時間が1分、サンプリング周期が1秒となっていますが、記録時間はもっと短い時間からできるように変更しようかと思っています。それに合わせて、長時間記録などの際のしやすさを変更するために、1hや1mなどといった最後にローマ字を付けることで時間の指定をできるオプションも考えています。ですが、これは今の実装からそこそこいじる必要があるので面倒であれあればしないかもしれません。記録時間は短くできるようにしたいですね。サンプリング周期の変更はしない予定です。

ご意見、ご感想など

コメントやメール等で随時受け付けます。こんな機能があればほしい、などでも大丈夫です。コメントは逐一拝見させていただきます。githubのほうはリクエストに対する返信などもしやすいです。助かった、便利だったなどささいなことでも私には非常に活力になりますのでお待ちしております。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です