Skip to content

Commit ef0009e

Browse files
committed
- we will build network / filter / aggregate ourselves.
go back to the preferred types layout
1 parent 3c717da commit ef0009e

File tree

3 files changed

+50
-55
lines changed

3 files changed

+50
-55
lines changed

sqlalchemy_collectd/sender.py

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
from . import collectd
2+
from . import types
23

34

45
senders = []
56

67

7-
def sends(name, type_):
8-
collectd_type = collectd.Type(
9-
name, ("value", type_)
10-
)
11-
8+
def sends(collectd_type):
129
def decorate(fn):
1310
senders.append((collectd_type, fn))
1411
return fn
@@ -25,39 +22,20 @@ def send(self, connection, collection_target, timestamp, interval, pid):
2522
for collectd_type, sender in senders:
2623
message_sender = collectd.MessageSender(
2724
collectd_type, self.hostname, "sqlalchemy",
28-
plugin_instance=str(pid), type_instance=self.stats_name,
25+
plugin_instance=self.stats_name, type_instance=str(pid),
2926
interval=interval
3027
)
31-
value = sender(collection_target)
32-
message_sender.send(connection, timestamp, value)
33-
34-
35-
@sends("sqlalchemy_numpools", collectd.VALUE_GAUGE)
36-
def _numpools(collection_target):
37-
return collection_target.num_pools
38-
39-
40-
@sends("sqlalchemy_checkedout", collectd.VALUE_GAUGE)
41-
def _checkedout(collection_target):
42-
return collection_target.num_checkedout
43-
44-
45-
@sends("sqlalchemy_checkedin", collectd.VALUE_GAUGE)
46-
def _checkedin(collection_target):
47-
return collection_target.num_checkedin
48-
49-
50-
@sends("sqlalchemy_detached", collectd.VALUE_GAUGE)
51-
def _detached(collection_target):
52-
return collection_target.num_detached
53-
54-
55-
@sends("sqlalchemy_invalidated", collectd.VALUE_GAUGE)
56-
def _invalidated(collection_target):
57-
return collection_target.num_invalidated
58-
59-
60-
@sends("sqlalchemy_connections", collectd.VALUE_GAUGE)
61-
def _connections(collection_target):
62-
return collection_target.num_connections
63-
28+
sender(message_sender, connection, collection_target, timestamp)
29+
30+
31+
@sends(types.pool)
32+
def _send_pool(message_sender, connection, collection_target, timestamp):
33+
message_sender.send(
34+
connection, timestamp,
35+
collection_target.num_pools,
36+
collection_target.num_checkedout,
37+
collection_target.num_checkedin,
38+
collection_target.num_detached,
39+
collection_target.num_invalidated,
40+
collection_target.num_connections
41+
)

sqlalchemy_collectd/types.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from . import collectd
2+
3+
pool = collectd.Type(
4+
"sqlalchemy_pool",
5+
("numpools", collectd.VALUE_GAUGE),
6+
("checkedout", collectd.VALUE_GAUGE),
7+
("checkedin", collectd.VALUE_GAUGE),
8+
("detached", collectd.VALUE_GAUGE),
9+
("invalidated", collectd.VALUE_GAUGE),
10+
("total", collectd.VALUE_GAUGE),
11+
)
12+
13+
checkouts = collectd.Type(
14+
"sqlalchemy_checkouts", ("count", collectd.VALUE_DERIVE))
15+
16+
commits = collectd.Type(
17+
"sqlalchemy_commits", ("count", collectd.VALUE_DERIVE))
18+
19+
rollbacks = collectd.Type(
20+
"sqlalchemy_rollbacks", ("count", collectd.VALUE_DERIVE))
21+
22+
invalidated = collectd.Type(
23+
"sqlalchemy_invalidated", ("count", collectd.VALUE_DERIVE))
24+
25+
transactions = collectd.Type(
26+
"sqlalchemy_transactions", ("count", collectd.VALUE_DERIVE))
27+

types.db

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
2-
sqlalchemy_numpools value:GAUGE:0:U
3-
sqlalchemy_checkedout value:GAUGE:0:U
4-
sqlalchemy_checkedin value:GAUGE:0:U
5-
sqlalchemy_detached value:GAUGE:0:U
6-
sqlalchemy_invalidated value:GAUGE:0:U
7-
sqlalchemy_connections value:GAUGE:0:U
8-
sqlalchemy_newconnections value:DERIVE:0:U
9-
sqlalchemy_checkouts value:DERIVE:0:U
10-
sqlalchemy_commits value:DERIVE:0:U
11-
sqlalchemy_rollbacks value:DERIVE:0:U
12-
sqlalchemy_invalidated value:DERIVE:0:U
13-
sqlalchemy_transactions value:GAUGE:0:U
14-
15-
16-
1+
sqlalchemy_pool numpools:GAUGE:0:U, checkedout:GAUGE:0:U, checkedin:GAUGE:0:U, detached:GAUGE:0:U, invalidated:GAUGE:0:U, total:GAUGE:0:U
2+
sqlalchemy_checkouts count:DERIVE:0:U
3+
sqlalchemy_commits count:DERIVE:0:U
4+
sqlalchemy_rollbacks count:DERIVE:0:U
5+
sqlalchemy_invalidated count:DERIVE:0:U
6+
sqlalchemy_transactions count:GAUGE:0:U

0 commit comments

Comments
 (0)