Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
monitor-client
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
992a796d
authored
5 years ago
by
Szeberényi Imre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix psutil.get_process_list issue (cmdline somtimes empty)
parent
829580ea
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
14 deletions
+22
-14
src/client.py
+22
-14
No files found.
src/client.py
View file @
992a796d
...
@@ -10,7 +10,11 @@ import psutil
...
@@ -10,7 +10,11 @@ import psutil
import
time
import
time
import
re
import
re
logging
.
basicConfig
()
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
level
=
os
.
environ
.
get
(
'LOGLEVEL'
,
'INFO'
)
logger
.
setLevel
(
'INFO'
)
class
Client
:
class
Client
:
...
@@ -162,29 +166,33 @@ class Client:
...
@@ -162,29 +166,33 @@ class Client:
args
,
unknown
=
parser
.
parse_known_args
(
args
,
unknown
=
parser
.
parse_known_args
(
entry
.
cmdline
()[
1
:])
entry
.
cmdline
()[
1
:])
# for Red Hat style parametering of kvm
# for Red Hat style parametering of kvm
args
.
name
=
re
.
sub
(
r"^guest="
,
""
,
args
.
name
)
if
isinstance
(
args
.
name
,
basestring
):
args
.
name
=
re
.
sub
(
r",debug-threads=.*$"
,
""
,
args
.
name
)
args
.
name
=
re
.
sub
(
r"^guest="
,
""
,
args
.
name
)
args
.
name
=
re
.
sub
(
r",debug-threads=.*$"
,
""
,
args
.
name
)
process
=
self
.
processes
.
get
(
entry
.
pid
,
None
)
process
=
self
.
processes
.
get
(
entry
.
pid
,
None
)
if
not
process
or
process
.
cmdline
()
!=
entry
.
cmdline
():
if
not
process
or
process
.
cmdline
()
!=
entry
.
cmdline
():
process
=
psutil
.
Process
(
entry
.
pid
)
process
=
psutil
.
Process
(
entry
.
pid
)
logger
.
info
(
'New process:
%
s'
,
process
)
logger
.
info
(
'New process:
%
s'
,
process
)
self
.
processes
[
entry
.
pid
]
=
process
self
.
processes
[
entry
.
pid
]
=
process
mem_perc
=
(
float
(
process
.
get_memory_info
()
.
rss
)
mem_perc
=
(
float
(
process
.
get_memory_info
()
.
rss
)
/
(
args
.
memory_size
*
1024
**
2
)
*
90
)
/
(
args
.
memory_size
*
1024
**
2
)
*
90
)
metrics
.
append
(
'vm.
%(name)
s.memory.usage
%(value)
f '
metrics
.
append
(
'vm.
%(name)
s.memory.usage
%(value)
f '
'
%(time)
d'
%
{
'name'
:
args
.
name
,
'
%(time)
d'
%
{
'name'
:
args
.
name
,
'value'
:
mem_perc
,
'value'
:
mem_perc
,
'time'
:
now
})
'time'
:
now
})
cpu_perc
=
process
.
get_cpu_percent
()
cpu_perc
=
process
.
get_cpu_percent
()
metrics
.
append
(
'vm.
%(name)
s.cpu.percent
%(value)
f '
metrics
.
append
(
'vm.
%(name)
s.cpu.percent
%(value)
f '
'
%(time)
d'
%
{
'name'
:
args
.
name
,
'
%(time)
d'
%
{
'name'
:
args
.
name
,
'value'
:
cpu_perc
,
'value'
:
cpu_perc
,
'time'
:
now
})
'time'
:
now
})
running_vms
.
append
(
args
.
name
)
running_vms
.
append
(
args
.
name
)
except
psutil
.
NoSuchProcess
:
else
:
logger
.
warning
(
'Process
%
d lost.'
,
entry
.
pid
)
logger
.
warning
(
'Pid:
%
d args.name is empty?:
%
s
%
s'
,
entry
.
pid
,
entry
.
name
(),
entry
.
cmdline
())
except
psutil
.
NoSuchProcess
,
TypeError
:
logger
.
warning
(
'Process
%
d lost. Entry:
%
s'
,
entry
.
pid
,
entry
.
cmdline
()[
1
:])
interfaces
=
psutil
.
network_io_counters
(
pernic
=
True
)
interfaces
=
psutil
.
network_io_counters
(
pernic
=
True
)
for
interface
,
data
in
interfaces
.
iteritems
():
for
interface
,
data
in
interfaces
.
iteritems
():
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment