Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
蜕变的菜鸟
glances
提交
2c6be49e
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,体验更适合开发者的 AI 搜索 >>
提交
2c6be49e
编写于
5月 06, 2018
作者:
N
nicolargo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add labels support to Promotheus exporter #1255
上级
8b6b0d3b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
5 deletion
+17
-5
NEWS
NEWS
+1
-0
conf/glances.conf
conf/glances.conf
+4
-0
glances/exports/glances_prometheus.py
glances/exports/glances_prometheus.py
+12
-5
未找到文件。
NEWS
浏览文件 @
2c6be49e
...
...
@@ -26,6 +26,7 @@ Enhancements and new features:
* Huge refactor of the WebUI packaging thanks to @spike008t #1239
* Add time zone to the current time #1249
* Use https URLs for checking external IP #1253
* Add labels support to Promotheus exporter #1255
One more thing ! A new Grafana Dash is available with:
* Network interface variable
...
...
conf/glances.conf
浏览文件 @
2c6be49e
...
...
@@ -444,6 +444,10 @@ prefix=G
host
=
localhost
port
=
9091
prefix
=
glances
# Labels will be added for all measurements
#labels=foo:bar,spam:eggs
# You can also use dynamic values
#labels=system:`uname -s`
[
restful
]
# Configuration for the --export RESTful option
...
...
glances/exports/glances_prometheus.py
浏览文件 @
2c6be49e
...
...
@@ -20,12 +20,11 @@
"""Prometheus interface class."""
import
sys
from
datetime
import
datetime
from
numbers
import
Number
from
glances.logger
import
logger
from
glances.exports.glances_export
import
GlancesExport
from
glances.compat
import
iteritems
from
glances.compat
import
iteritems
,
listkeys
from
prometheus_client
import
start_http_server
,
Gauge
...
...
@@ -42,11 +41,12 @@ class Export(GlancesExport):
# Optionals configuration keys
self
.
prefix
=
'glances'
self
.
labels
=
None
# Load the Prometheus configuration file section
self
.
export_enable
=
self
.
load_conf
(
'prometheus'
,
mandatories
=
[
'host'
,
'port'
],
options
=
[
'prefix'
])
options
=
[
'prefix'
,
'labels'
])
if
not
self
.
export_enable
:
sys
.
exit
(
2
)
...
...
@@ -82,8 +82,15 @@ class Export(GlancesExport):
# See: https://prometheus.io/docs/practices/naming/
for
c
in
[
'.'
,
'-'
,
'/'
,
' '
]:
metric_name
=
metric_name
.
replace
(
c
,
self
.
METRIC_SEPARATOR
)
# Get the labels
labels
=
self
.
parse_tags
(
self
.
labels
)
# Manage an internal dict between metric name and Gauge
if
metric_name
not
in
self
.
_metric_dict
:
self
.
_metric_dict
[
metric_name
]
=
Gauge
(
metric_name
,
k
)
self
.
_metric_dict
[
metric_name
]
=
Gauge
(
metric_name
,
k
,
labelnames
=
listkeys
(
labels
))
# Write the value
self
.
_metric_dict
[
metric_name
].
set
(
v
)
if
hasattr
(
self
.
_metric_dict
[
metric_name
],
'labels'
):
# Add the labels (see issue #1255)
self
.
_metric_dict
[
metric_name
].
labels
(
**
labels
).
set
(
v
)
else
:
self
.
_metric_dict
[
metric_name
].
set
(
v
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录