FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
netdata/python.d/tomcat.chart.py at master · PlumpMath/netdata · GitHub
PlumpMath
/
netdata
Public
forked from
netdata/netdata
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
netdata
/
python.d
/
tomcat.chart.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
76 lines (63 loc) · 2.4 KB
Breadcrumbs
netdata
/
python.d
/
tomcat.chart.py
Copy path
File metadata and controls
76 lines (63 loc) · 2.4 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding: utf-8 -*-
# Description: tomcat netdata python.d module
# Author: Pawel Krupa (paulfantom)
from
base
import
UrlService
from
re
import
compile
try
:
from
urlparse
import
urlparse
except
ImportError
:
from
urllib
.
parse
import
urlparse
# default module values (can be overridden per job in `config`)
# update_every = 2
priority
=
60000
retries
=
60
# charts order (can be overridden if you want less charts, or different order)
ORDER
=
[
'accesses'
,
'volume'
,
'threads'
,
'jvm'
]
CHARTS
=
{
'accesses'
: {
'options'
: [
None
,
"Requests"
,
"requests/s"
,
"statistics"
,
"tomcat.accesses"
,
"area"
],
'lines'
: [
[
"requestCount"
,
'accesses'
,
'incremental'
]
]},
'volume'
: {
'options'
: [
None
,
"Volume"
,
"KB/s"
,
"volume"
,
"tomcat.volume"
,
"area"
],
'lines'
: [
[
"bytesSent"
,
'volume'
,
'incremental'
,
1
,
1024
]
]},
'threads'
: {
'options'
: [
None
,
"Threads"
,
"current threads"
,
"statistics"
,
"tomcat.threads"
,
"line"
],
'lines'
: [
[
"currentThreadCount"
,
'current'
,
"absolute"
],
[
"currentThreadsBusy"
,
'busy'
,
"absolute"
]
]},
'jvm'
: {
'options'
: [
None
,
"JVM Free Memory"
,
"MB"
,
"statistics"
,
"tomcat.jvm"
,
"area"
],
'lines'
: [
[
"free"
,
None
,
"absolute"
,
1
,
1048576
]
]}
}
class
Service
(
UrlService
):
def
__init__
(
self
,
configuration
=
None
,
name
=
None
):
UrlService
.
__init__
(
self
,
configuration
=
configuration
,
name
=
name
)
self
.
url
=
self
.
configuration
.
get
(
'url'
,
"http://127.0.0.1:8080/manager/status?XML=true"
)
self
.
order
=
ORDER
self
.
definitions
=
CHARTS
def
check
(
self
):
netloc
=
urlparse
(
self
.
url
).
netloc
.
rpartition
(
':'
)
if
netloc
[
1
]
==
':'
:
port
=
netloc
[
2
]
else
:
port
=
80
self
.
regex_jvm
=
compile
(
r'<jvm>.*?</jvm>'
)
self
.
regex_connector
=
compile
(
r'[a-z-]+%s.*?/connector'
%
port
)
self
.
regex
=
compile
(
r'([\w]+)=\\?[\'\"](\d+)\\?[\'\"]'
)
return
UrlService
.
check
(
self
)
def
_get_data
(
self
):
"""
Format data received from http request
:return: dict
"""
data
=
self
.
_get_raw_data
()
if
data
:
jvm
=
self
.
regex_jvm
.
findall
(
data
)
or
[
''
]
connector
=
self
.
regex_connector
.
findall
(
data
)
or
[
''
]
data
=
dict
(
self
.
regex
.
findall
(
''
.
join
([
jvm
[
0
],
connector
[
0
]])))
return
data
or
None
Back
|
FazBrowse Home
|
New Git URL