0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

sarコマンドで取得したLinuxのパフォーマンスデータをPythonでグラフ化する①

Posted at

はじめに

上の記事でCSV化したLinuxのパフォーマンスデータをPythonでグラフ化する。

前提

  • Jupyter Notebookを使用
  • sarで取得したデータはすでにCSV化してあるものとする
  • 今回はCPU使用率をグラフ化する

必要なモジュールのインポート

今回使用するモジュールをインポートする。
なお、以降は全てJupyterNotebook上で実行している。

import pandas as pd
import matplotlib 
import matplotlib.pyplot as plt

ファイルの読み込み

データフレームとしてCSVファイルを読み込む。

df = pd.read_csv('test-sar001.csv', names=['hostname', 'interval', 'time', 'value1', 'value2', 'value3'])

CPU使用率の計算

CPU使用率の計算のため、value1がCPU全体を示すallになっておりvalue2がCPUのidleの割合を示す%idleになっている行をdfから抜き出す。
まず、df2として、value2が%idleとなっている行を抜き出す。
さらにdf3として、value1がallになっている行を抜き出す。

df2 = df[df['value2'] == "%idle"]
df3 = df2[df2['value1'] == "all"].reset_index(drop=True)

CPU Usageとして、100からvalue3を引いた値をセットする。(100から%idleを引いた値を使用率としている)

df3['CPU Usage'] = 100.0 - df3['value3']

df3を表示すると以下のようになっている。

df3
	hostname	interval	time	value1	value2	value3	CPU Usage
0	test03	1	2024-12-28 13:44:21	all	%idle	99.01	0.99
1	test03	1	2024-12-28 13:44:22	all	%idle	93.47	6.53
2	test03	1	2024-12-28 13:44:23	all	%idle	93.07	6.93
3	test03	1	2024-12-28 13:44:24	all	%idle	92.96	7.04
4	test03	1	2024-12-28 13:44:25	all	%idle	92.12	7.88
...	...	...	...	...	...	...	...
295	test03	1	2024-12-28 13:49:16	all	%idle	91.63	8.37
296	test03	1	2024-12-28 13:49:17	all	%idle	92.61	7.39
297	test03	1	2024-12-28 13:49:18	all	%idle	93.00	7.00
298	test03	1	2024-12-28 13:49:19	all	%idle	93.00	7.00
299	test03	1	2024-12-28 13:49:20	all	%idle	93.00	7.00
300 rows × 7 columns

timeから時刻のみ取り出したものをtime2として追加する。

df3['time2'] = df5['time'].str[-8:]
df3
	hostname	interval	time	value1	value2	value3	CPU Usage	time2
0	test03	1	2024-12-28 13:44:21	all	%idle	99.01	0.99	13:44:21
1	test03	1	2024-12-28 13:44:22	all	%idle	93.47	6.53	13:44:22
2	test03	1	2024-12-28 13:44:23	all	%idle	93.07	6.93	13:44:23
3	test03	1	2024-12-28 13:44:24	all	%idle	92.96	7.04	13:44:24
4	test03	1	2024-12-28 13:44:25	all	%idle	92.12	7.88	13:44:25
...	...	...	...	...	...	...	...	...
295	test03	1	2024-12-28 13:49:16	all	%idle	91.63	8.37	13:49:16
296	test03	1	2024-12-28 13:49:17	all	%idle	92.61	7.39	13:49:17
297	test03	1	2024-12-28 13:49:18	all	%idle	93.00	7.00	13:49:18
298	test03	1	2024-12-28 13:49:19	all	%idle	93.00	7.00	13:49:19
299	test03	1	2024-12-28 13:49:20	all	%idle	93.00	7.00	13:49:20
300 rows × 8 columns

これで準備ができたので、matplotlibを使用してグラフを描画する。
plt.savefigは作成したグラフをpngとして描き出すために指定している。

plt.rcParams['figure.figsize'] = (16.0, 3.0)
df3.plot(x='time2', y=['CPU Usage'])
plt.xlabel('')
plt.savefig("test-csv001.png")

出力されたグラフは下のようになる。
test-csv001.png

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?