Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
蜕变的菜鸟
glances
提交
eb5ea5d3
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 搜索 >>
提交
eb5ea5d3
编写于
4月 30, 2016
作者:
N
nicolargo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create a default AMP to replace the Monitoring process list
上级
b347cb9c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
46 addition
and
26 deletion
+46
-26
conf/glances.conf
conf/glances.conf
+10
-2
glances/amps/glances_amp.py
glances/amps/glances_amp.py
+5
-2
glances/amps/glances_nginx.py
glances/amps/glances_nginx.py
+1
-1
glances/amps_list.py
glances/amps_list.py
+20
-21
glances/compat.py
glances/compat.py
+6
-0
glances/config.py
glances/config.py
+4
-0
未找到文件。
conf/glances.conf
浏览文件 @
eb5ea5d3
...
...
@@ -255,6 +255,14 @@ queue=glances_queue
# AMPS
######
[
amp_dropbox
]
enable
=
true
regex
=.*
dropbox
.*
refresh
=
3
one_line
=
false
command
=
dropbox
status
countmin
=
1
[
amp_nginx
]
# Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/)
enable
=
true
...
...
@@ -267,7 +275,7 @@ status_url=http://localhost/nginx_status
# Systemd
enable
=
true
regex
=\/
usr
\/
lib
\/
systemd
\/
systemd
refresh
=
6
0
refresh
=
3
0
one_line
=
true
systemctl_cmd
=/
usr
/
bin
/
systemctl
--
plain
...
...
@@ -275,6 +283,6 @@ systemctl_cmd=/usr/bin/systemctl --plain
# Systemv
enable
=
true
regex
=\/
sbin
\/
init
refresh
=
1
0
refresh
=
3
0
one_line
=
true
service_cmd
=/
usr
/
bin
/
service
--
status
-
all
glances/amps/glances_amp.py
浏览文件 @
eb5ea5d3
...
...
@@ -46,12 +46,15 @@ class GlancesAmp(object):
AUTHOR
=
'?'
EMAIL
=
'?'
def
__init__
(
self
,
args
=
None
):
def
__init__
(
self
,
name
=
None
,
args
=
None
):
"""Init AMP classe."""
logger
.
debug
(
"Init {0} version {1}"
.
format
(
self
.
NAME
,
self
.
VERSION
))
# AMP name (= module name without glances_)
self
.
amp_name
=
self
.
__class__
.
__module__
[
len
(
'glances_'
):]
if
name
is
None
:
self
.
amp_name
=
self
.
__class__
.
__module__
[
len
(
'glances_'
):]
else
:
self
.
amp_name
=
name
# Init the args
self
.
args
=
args
...
...
glances/amps/glances_nginx.py
浏览文件 @
eb5ea5d3
...
...
@@ -82,7 +82,7 @@ class Amp(GlancesAmp):
res
=
requests
.
get
(
self
.
get
(
'status_url'
))
if
res
.
ok
:
# u'Active connections: 1 \nserver accepts handled requests\n 1 1 1 \nReading: 0 Writing: 1 Waiting: 0 \n'
self
.
set_result
(
res
.
text
)
self
.
set_result
(
res
.
text
.
rstrip
()
)
else
:
logger
.
debug
(
'{0}: Can not grab status URL {1} ({2})'
.
format
(
self
.
NAME
,
self
.
get
(
'status_url'
),
res
.
reason
))
...
...
glances/amps_list.py
浏览文件 @
eb5ea5d3
...
...
@@ -48,39 +48,38 @@ class AmpsList(object):
self
.
args
=
args
self
.
config
=
config
# Create the AMPS list
self
.
load_amps
()
# Load the AMP configurations / scripts
self
.
load_configs
()
def
load_
amp
s
(
self
):
"""Load
all amps in the 'amps' folder
."""
def
load_
config
s
(
self
):
"""Load
the AMP configuration files
."""
header
=
"glances_"
for
item
in
os
.
listdir
(
amps_path
):
if
(
item
.
startswith
(
header
)
and
item
.
endswith
(
".py"
)
and
item
!=
(
header
+
"amp.py"
)):
# Import the amp
# For each AMP scrip, call the load_config method
for
s
in
self
.
config
.
sections
():
if
s
.
startswith
(
"amp_"
):
# An AMP section exists in the configuration file
# If an AMP script exist in the glances/amps folder, use it
amp_conf_name
=
s
[
4
:]
amp_script
=
os
.
path
.
join
(
amps_path
,
header
+
s
[
4
:]
+
".py"
)
if
not
os
.
path
.
exists
(
amp_script
):
# If not, use the default script
amp_script
=
os
.
path
.
join
(
amps_path
,
"glances_default.py"
)
try
:
amp
=
__import__
(
os
.
path
.
basename
(
item
)[:
-
3
])
amp
=
__import__
(
os
.
path
.
basename
(
amp_script
)[:
-
3
])
except
ImportError
as
e
:
logger
.
warning
(
"Can not load {0}, you need to install an external Python package ({1})"
.
format
(
os
.
path
.
basename
(
item
),
e
))
logger
.
warning
(
"Can not load {0}, you need to install an external Python package ({1})"
.
format
(
os
.
path
.
basename
(
amp_script
),
e
))
except
Exception
as
e
:
logger
.
warning
(
"Can not load {0} ({1})"
.
format
(
os
.
path
.
basename
(
item
),
e
))
logger
.
warning
(
"Can not load {0} ({1})"
.
format
(
os
.
path
.
basename
(
amp_script
),
e
))
else
:
# Add the AMP to the dictionary
# The key is the AMP name
# for example, the file glances_xxx.py
# generate self._amps_list["xxx"] = ...
amp_name
=
os
.
path
.
basename
(
item
)[
len
(
header
):
-
3
].
lower
()
self
.
__amps_dict
[
amp_name
]
=
amp
.
Amp
(
self
.
args
)
self
.
__amps_dict
[
amp_conf_name
]
=
amp
.
Amp
(
name
=
amp_conf_name
,
args
=
self
.
args
)
# Load the AMP configuration
self
.
__amps_dict
[
amp_conf_name
].
load_config
(
self
.
config
)
# Log AMPs list
logger
.
debug
(
"Available AMPs list: {0}"
.
format
(
self
.
getList
()))
def
load_configs
(
self
):
"""Load the AMP configuration files."""
# For each AMPs, call the load_config method
for
a
in
self
.
get
():
self
.
get
()[
a
].
load_config
(
self
.
config
)
logger
.
debug
(
"AMPs' list: {0}"
.
format
(
self
.
getList
()))
def
__str__
(
self
):
return
str
(
self
.
__amps_dict
)
...
...
glances/compat.py
浏览文件 @
eb5ea5d3
...
...
@@ -23,9 +23,15 @@
import
operator
import
sys
import
unicodedata
PY3
=
sys
.
version_info
[
0
]
==
3
def
to_ascii
(
s
):
"""Convert the unicode 's' to a ASCII string
Usefull to remove accent (diacritics)"""
return
unicodedata
.
normalize
(
'NFKD'
,
s
).
encode
(
'ASCII'
,
'ignore'
)
if
PY3
:
import
queue
from
configparser
import
ConfigParser
,
NoOptionError
,
NoSectionError
...
...
glances/config.py
浏览文件 @
eb5ea5d3
...
...
@@ -207,6 +207,10 @@ class Config(object):
"""Return the loaded configuration file."""
return
self
.
_loaded_config_file
def
sections
(
self
):
"""Return a list of all sections."""
return
self
.
parser
.
sections
()
def
items
(
self
,
section
):
"""Return the items list of a section."""
return
self
.
parser
.
items
(
section
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录