Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
蜕变的菜鸟
glances
提交
63f03753
G
glances
项目概览
蜕变的菜鸟
/
glances
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
glances
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
63f03753
编写于
1月 22, 2021
作者:
D
Deosrc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add mqtt output in JSON format
上级
74a499b5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
8 deletion
+24
-8
glances/exports/glances_mqtt.py
glances/exports/glances_mqtt.py
+24
-8
未找到文件。
glances/exports/glances_mqtt.py
浏览文件 @
63f03753
...
...
@@ -21,6 +21,7 @@
import
socket
import
string
import
json
from
glances.logger
import
logger
from
glances.exports.glances_export
import
GlancesExport
...
...
@@ -47,7 +48,7 @@ class Export(GlancesExport):
# Load the MQTT configuration file
self
.
export_enable
=
self
.
load_conf
(
'mqtt'
,
mandatories
=
[
'host'
,
'password'
],
options
=
[
'port'
,
'user'
,
'topic'
,
'tls'
])
options
=
[
'port'
,
'user'
,
'topic'
,
'tls'
,
'format'
])
if
not
self
.
export_enable
:
exit
(
'Missing MQTT config'
)
...
...
@@ -59,6 +60,11 @@ class Export(GlancesExport):
self
.
user
=
self
.
user
or
'glances'
self
.
tls
=
(
self
.
tls
and
self
.
tls
.
lower
()
==
'true'
)
self
.
format
=
self
.
format
.
lower
()
or
'simple'
if
self
.
format
not
in
[
'simple'
,
'json'
]:
logger
.
critical
(
"Format must be either 'simple' or 'json'."
)
return
None
# Init the MQTT client
self
.
client
=
self
.
init
()
...
...
@@ -92,13 +98,23 @@ class Export(GlancesExport):
substitute
=
SUBSTITUTE
):
return
''
.
join
(
c
if
c
in
whitelist
else
substitute
for
c
in
s
)
for
sensor
,
value
in
zip
(
columns
,
points
):
if
self
.
format
==
'simple'
:
for
sensor
,
value
in
zip
(
columns
,
points
):
try
:
sensor
=
[
whitelisted
(
name
)
for
name
in
sensor
.
split
(
'.'
)]
tobeexport
=
[
self
.
topic
,
self
.
hostname
,
name
]
tobeexport
.
extend
(
sensor
)
topic
=
'/'
.
join
(
tobeexport
)
self
.
client
.
publish
(
topic
,
value
)
except
Exception
as
e
:
logger
.
error
(
"Can not export stats to MQTT server (%s)"
%
e
)
elif
self
.
format
==
'json'
:
try
:
sensor
=
[
whitelisted
(
name
)
for
name
in
sensor
.
split
(
'.'
)]
tobeexport
=
[
self
.
topic
,
self
.
hostname
,
name
]
tobeexport
.
extend
(
sensor
)
topic
=
'/'
.
join
(
tobeexport
)
self
.
client
.
publish
(
topic
,
value
)
topic
=
'/'
.
join
([
self
.
topic
,
self
.
hostname
,
name
])
sensor_values
=
dict
(
zip
(
columns
,
points
))
json_values
=
json
.
dumps
(
sensor_values
)
self
.
client
.
publish
(
topic
,
json_values
)
except
Exception
as
e
:
logger
.
error
(
"Can not export stats to MQTT server (%s)"
%
e
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录