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
f1892912
authored
Jan 26, 2014
by
Gregory Nagy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refomated code using pep8 conventions.
manage.py: error handling added
parent
99be2c47
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
29 additions
and
37 deletions
+29
-37
manage.py
+8
-12
src/client.py
+0
-0
src/cnfparse.py
+0
-0
src/collectables.py
+0
-0
src/metrics.py
+21
-25
No files found.
manage.py
View file @
f1892912
import
sys
from
src
import
cnfparse
,
client
,
collectables
def
main
():
if
(
len
(
sys
.
argv
)
<
2
):
def
main
():
if
len
(
sys
.
argv
)
<
2
:
print
(
"usage: manage.py run [options]"
)
print
(
"""
options:
--config <path> : path to the configuration file you intend
to start the client with
--debug : enables the debug mode and writes metrics sent to the
server
"""
)
if
(
len
(
sys
.
argv
)
==
2
and
sys
.
argv
[
1
]
==
"run"
):
configuration
,
metrics
=
cnfparse
.
importConf
(
"config/client.conf"
)
if
len
(
sys
.
argv
)
is
not
2
and
sys
.
argv
[
1
]
is
not
"run"
:
print
(
"[ERROR] Command cannot be parsed. Exiting..."
)
return
configuration
,
metrics
=
cnfparse
.
importConf
(
"config/client.conf"
)
cli
=
client
.
Client
(
configuration
)
cli
.
startReporting
(
metricCollectors
=
cli
.
startReporting
(
metricCollectors
=
collectables
.
collectables
.
provide
(
metrics
))
if
__name__
==
"__main__"
:
main
()
src/client.py
View file @
f1892912
src/cnfparse.py
View file @
f1892912
src/collectables.py
View file @
f1892912
src/metrics.py
View file @
f1892912
...
...
@@ -8,9 +8,9 @@ import collections
Metrics
=
collections
.
namedtuple
(
"Metrics"
,
[
"name"
,
"value"
])
class
Collection
(
object
):
class
Group
(
object
):
class
Metric
(
object
):
class
Collection
(
object
):
class
Group
(
object
):
class
Metric
(
object
):
name
=
"unknown"
collector_function
=
0
collector_function_arguments
=
{}
...
...
@@ -18,66 +18,62 @@ class Collection (object):
@classmethod
def
harvest
(
cls
):
query
=
cls
.
collector_function
.
im_func
(
**
cls
.
collector_function_arguments
)
query
=
cls
.
collector_function
.
im_func
(
**
cls
.
collector_function_arguments
)
if
((
isinstance
(
query
,
list
))
or
(
isinstance
(
query
,
dict
))):
return
Metrics
(
cls
.
name
,
query
[
cls
.
collector_function_result_attr
])
elif
(
isinstance
(
query
,
tuple
)):
return
Metrics
(
cls
.
name
,
query
.
__getattribute__
(
cls
.
collector_function_result_attr
))
query
.
__getattribute__
(
cls
.
collector_function_result_attr
))
else
:
return
Metrics
(
cls
.
name
,
query
)
##############################################################################
class
std
(
Collection
):
class
cpu
(
Collection
.
Group
):
class
usage
(
Collection
.
Group
.
Metric
):
class
std
(
Collection
):
class
cpu
(
Collection
.
Group
):
class
usage
(
Collection
.
Group
.
Metric
):
name
=
"cpu.usage"
collector_function
=
ps
.
cpu_percent
collector_function_arguments
=
{
'interval'
:
0.0
,
}
class
memory
(
Collection
.
Group
):
class
memory
(
Collection
.
Group
):
class
usage
(
Collection
.
Group
.
Metric
):
name
=
"memory.usage"
collector_function
=
ps
.
virtmem_usage
collector_function_result_attr
=
"percent"
class
swap
(
Collection
.
Group
):
class
swap
(
Collection
.
Group
):
class
usage
(
Collection
.
Group
.
Metric
):
name
=
"swap.usage"
collector_function
=
ps
.
swap_memory
collector_function_result_attr
=
"percent"
class
user
(
Collection
.
Group
):
class
count
(
Collection
.
Group
.
Metric
):
class
user
(
Collection
.
Group
):
class
count
(
Collection
.
Group
.
Metric
):
name
=
"user.count"
@classmethod
def
harvest
(
cls
):
return
Metrics
(
cls
.
name
,
len
(
ps
.
get_users
()))
class
network
(
Collection
.
Group
):
class
packages_sent
(
Collection
.
Group
.
Metric
):
class
network
(
Collection
.
Group
):
class
packages_sent
(
Collection
.
Group
.
Metric
):
name
=
"network.packages_sent"
collector_function
=
ps
.
network_io_counters
collector_function_result_attr
=
"packets_sent"
class
packages_received
(
Collection
.
Group
.
Metric
):
class
packages_received
(
Collection
.
Group
.
Metric
):
name
=
"network.packages_received"
collector_function
=
ps
.
network_io_counters
collector_function_result_attr
=
"packets_recv"
class
bytes_sent
(
Collection
.
Group
.
Metric
):
class
bytes_sent
(
Collection
.
Group
.
Metric
):
name
=
"network.bytes_sent"
collector_function
=
ps
.
network_io_counters
collector_function_result_attr
=
"bytes_sent"
...
...
@@ -87,8 +83,7 @@ class std (Collection):
collector_function
=
ps
.
network_io_counters
collector_function_result_attr
=
"bytes_recv"
class
system
(
Collection
.
Group
):
class
boot_time
(
Collection
.
Group
.
Metric
):
class
system
(
Collection
.
Group
):
class
boot_time
(
Collection
.
Group
.
Metric
):
name
=
"system.boot_time"
collector_function
=
ps
.
get_boot_time
\ No newline at end of file
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