メモリから最初の5つのプロセスを含むJSONドキュメントをインポートしようとしています。
このJSONをZabbixに送信し、メモリを介して最初の5つのプロセスをプロットしたいと思います。
次のコマンドを使用して、メモリの上位5つのプロセスを取得します。
ps axho comm --sort -rss | head -5
node
mongod
kubelet
dockerd
systemd-journal
この構造を得るためにキーを使用してps
+の出力をJSONに変換するにはどうすればよいですか?head
{#PROCNAME}
{
"data": [
{
"{#PROCNAME}": "node"
},
{
"{#PROCNAME}": "mongod"
},
{
"{#PROCNAME}": "kubelet"
},
{
"{#PROCNAME}": "dockerd"
},
{
"{#PROCNAME}": "systemd-journal"
}
]
}
https://www.zabbix.com/documentation/current/manual/config/macros/lld_macros
LLD(低レベル検索)機能にはマクロが使用されます。
{#MACRO}
ベストアンサー1
jq
対応するinputs
関数があり、それが文字列であると仮定すると、次のようになり{#PROCNAME}
ます。
ps axho comm --sort -rss | head -5 | jq -Rn '{data: [inputs|{"#PROCNAME":.}]}'
これらのinputs
関数は任意のjq
入力文字列を読み取ることができます。残ったのは、好きな形式を得るための装飾だけです。
このオプションは、-R
生の文字列を入力として使用します。このオプションは項目を介した入力を-n
提供します。これにより、すべての文字列を一度に取得できます。jq
null
inputs