Skip to content

Commit 4759963

Browse files
committed
Merge branch 'master' into dev_zabbix-agent
2 parents 2e86f42 + 8ae4273 commit 4759963

File tree

7 files changed

+33
-30
lines changed

7 files changed

+33
-30
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services:
66
before_install:
77
- docker pull centos:6
88
- docker pull centos:7
9-
- docker pull debian:7
9+
- docker pull debian:9
1010

1111
script:
1212
- make test

Makefile.tests

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ run_builds:
55
docker run --rm -v "$(WORKDIR)":/var/tmp debian:9 /bin/bash -ex "/var/tmp/tests/build_deb.sh"
66

77
run_functional_tests:
8-
docker run --rm -v "$(WORKDIR)":/var/tmp centos:6 /bin/bash -ex "/var/tmp/tests/check.sh"
8+
docker run --rm -v "$(WORKDIR)":/var/tmp centos:6 /bin/bash -ex "/var/tmp/tests/check.sh"

README.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ Metrics: PostgreSQL
280280
'PostgreSQL locks: Locks from application': pgsql.pg_locks[sharerowexclusive]
281281
'PostgreSQL locks: Locks from application or some operation on system catalogs': pgsql.pg_locks[exclusive]
282282
'PostgreSQL locks: ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, VACUUM FULL, LOCK TABLE': pgsql.pg_locks[accessexclusive]
283-
'PostgreSQL oldest query running time': pgsql.oldest[query_time]
283+
'PostgreSQL oldest transaction running time': pgsql.oldest[transaction_time]
284284
'PostgreSQL age of oldest xid': pgsql.oldest[xid_age]
285285
'PostgreSQL waits: Lightweight locks': pgsql.all_lock[lwlock]
286286
'PostgreSQL waits: Heavyweight locks': pgsql.all_lock[hwlock]

mamonsu/plugins/pgsql/health.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ def run(self, zbx):
2121

2222
start_time = time.time()
2323
Pooler.query(self.query_health)
24-
zbx.send(self.key_ping.format('[]'), (time.time() - start_time) * 100)
25-
24+
zbx.send(self.key_ping.format('[]'), (time.time() - start_time) * 1000)
2625
result = Pooler.query(self.query_uptime)
2726
zbx.send(self.key_uptime.format('[]'), int(result[0][0]))
2827

mamonsu/plugins/pgsql/oldest.py

+16-14
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,21 @@ class Oldest(Plugin):
1010
OldestXidSql = "select greatest(max(age(backend_xmin)), max(age(backend_xid))) from pg_catalog.pg_stat_activity;"
1111

1212
OldestXidSql_bootstrap = "select public.mamonsu_get_oldest_xid();"
13-
OldestQuerySql = "select case when extract(epoch from max(now() - xact_start)) is not null then extract(epoch" \
14-
" from max(now() - xact_start)) else 0 end from pg_catalog.pg_stat_activity where pid not in " \
15-
"(select pid from pg_stat_replication) AND pid <> pg_backend_pid() " \
16-
"AND query not ilike '%%VACUUM%%'; "
1713

1814
# OldestQuery = " SELECT query FROM pg_catalog.pg_stat_activity WHERE extract(epoch FROM (now() - query_start))=(SELECT " \
1915
# "extract(epoch from max(now() - query_start)) FROM pg_catalog.pg_stat_activity) and pid not " \
2016
# "in (select pid from pg_stat_replication) AND pid <> pg_backend_pid() AND query not ilike '%%VACUUM%%';"
21-
22-
OldestQuerySql_bootstrap = "select public.mamonsu_get_oldest_query();"
17+
OldestQuerySql = "SELECT CASE WHEN extract(epoch from max(now() - xact_start)) IS NOT NULL AND extract(epoch" \
18+
" from max(now() - xact_start))>0 THEN extract(epoch from max(now() - xact_start)) ELSE 0 END FROM " \
19+
"pg_catalog.pg_stat_activity WHERE pid NOT IN (SELECT pid FROM pg_stat_replication) AND " \
20+
"pid <> pg_backend_pid(); "
21+
OldestQuerySql_bootstrap = """
22+
select public.mamonsu_get_oldest_query();
23+
"""
2324

2425
DEFAULT_CONFIG = {
2526
'max_xid_age': str(5000 * 60 * 60),
26-
'max_query_time': str(5 * 60 * 60)
27+
'max_transaction_time': str(5 * 60 * 60)
2728
}
2829

2930
def run(self, zbx):
@@ -35,13 +36,13 @@ def run(self, zbx):
3536
query = Pooler.query(self.OldestQuerySql)[0][0]
3637

3738
zbx.send('pgsql.oldest[xid_age]', xid)
38-
zbx.send('pgsql.oldest[query_time]', query)
39+
zbx.send('pgsql.oldest[transaction_time]', query)
3940

4041
def graphs(self, template):
4142
result = template.graph({
42-
'name': 'PostgreSQL oldest query running time',
43+
'name': 'PostgreSQL oldest transaction running time',
4344
'items': [{
44-
'key': self.right_type(self.key, 'query_time'),
45+
'key': self.right_type(self.key, 'transaction_time'),
4546
'color': '00CC00'
4647
}]
4748
})
@@ -61,8 +62,9 @@ def items(self, template):
6162
'delay': self.plugin_config('interval'),
6263
'value_type': Plugin.VALUE_TYPE.numeric_unsigned
6364
}) + template.item({
64-
'key': self.right_type(self.key, 'query_time'),
65-
'name': 'PostgreSQL: oldest query running time in sec',
65+
66+
'key': self.right_type(self.key, 'transaction_time'),
67+
'name': 'PostgreSQL: oldest transaction running time in sec',
6668
'delay': self.plugin_config('interval'),
6769
'units': Plugin.UNITS.s
6870
})
@@ -74,8 +76,8 @@ def triggers(self, template):
7476
'.last()}&gt;' + self.plugin_config('max_xid_age')
7577
}) + template.trigger({
7678
'name': 'PostgreSQL query running is too old on {HOSTNAME}',
77-
'expression': '{#TEMPLATE:' + self.right_type(self.key, 'query_time') +
78-
'.last()}&gt;' + self.plugin_config('max_query_time')
79+
'expression': '{#TEMPLATE:' + self.right_type(self.key, 'transaction_time') +
80+
'.last()}&gt;' + self.plugin_config('max_transaction_time')
7981
})
8082

8183
def keys_and_queries(self, template_zabbix):

mamonsu/plugins/system/linux/disk_sizes.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ class DiskSizes(Plugin):
2626
'pstore', 'devtmpfs', 'autofs',
2727
'cgroup', 'configfs', 'devpts',
2828
'efivarfs', 'fusectl', 'fuse.gvfsd-fuse',
29-
'hugetlbfs', 'mqueue',
30-
'nfsd', 'proc', 'pstore',
29+
'hugetlbfs', 'mqueue', 'binfmt_misc',
30+
'nfsd', 'proc', 'pstore', 'selinuxfs'
3131
'rpc_pipefs', 'securityfs', 'sysfs',
3232
'nsfs', 'tmpfs', 'tracefs']
3333

mamonsu/tools/bootstrap/sql.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@
6868
6969
CREATE or REPLACE FUNCTION public.mamonsu_get_oldest_query()
7070
RETURNS DOUBLE PRECISION AS $$
71-
SELECT
72-
CASE
73-
WHEN extract(epoch from max(now() - xact_start)) IS NOT NULL THEN extract(epoch FROM max(now() - xact_start))
74-
ELSE 0 END
75-
FROM
76-
pg_catalog.pg_stat_activity
77-
WHERE pid NOT IN (SELECT pid FROM pg_stat_replication)
78-
AND pid <> pg_backend_pid()
79-
AND query NOT ilike '%%VACUUM%%'
71+
SELECT
72+
CASE WHEN extract(epoch from max(now() - xact_start)) IS NOT null
73+
AND extract(epoch from max(now() - xact_start))>0
74+
THEN extract(epoch from max(now() - xact_start))
75+
ELSE 0
76+
END
77+
FROM pg_catalog.pg_stat_activity
78+
WHERE
79+
pid NOT IN(select pid from pg_stat_replication) AND
80+
pid <> pg_backend_pid() AND
81+
query NOT ilike '%%VACUUM%%'
8082
$$ LANGUAGE SQL SECURITY DEFINER;
8183
8284
CREATE OR REPLACE FUNCTION public.mamonsu_count_{3}_files()

0 commit comments

Comments
 (0)