From af16574911dbf8f10249f27e60970d5e473420e4 Mon Sep 17 00:00:00 2001 From: Lars Beckers <lars.beckers@rwth-aachen.de> Date: Wed, 3 May 2017 23:08:12 +0200 Subject: [PATCH] zabbix-server: add comment counts function --- zabbix-server/files/commentcounts.sql | 20 ++++++++++++++++++++ zabbix-server/tasks/main.yml | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 zabbix-server/files/commentcounts.sql diff --git a/zabbix-server/files/commentcounts.sql b/zabbix-server/files/commentcounts.sql new file mode 100644 index 0000000..88b6071 --- /dev/null +++ b/zabbix-server/files/commentcounts.sql @@ -0,0 +1,20 @@ +CREATE OR REPLACE FUNCTION zbx_update_partition_table_comments(schema_arg TEXT DEFAULT 'partitions') RETURNS INT AS $$ +DECLARE + r RECORD; + c BIGINT; + t TEXT; +BEGIN + RAISE NOTICE 'Updating table comments in schema %', schema_arg; + FOR r IN SELECT tablename FROM pg_tables WHERE schemaname = schema_arg -- AND tablename like 'history_str%' + LOOP + RAISE NOTICE '. updating comment for %.%', schema_arg, r.tablename; + EXECUTE 'SELECT count(1) FROM ' || quote_ident(schema_arg) || '.' || quote_ident(r.tablename) || '' INTO c; + t := quote_literal(date_trunc('second',CURRENT_TIMESTAMP)::TEXT || ' => ' || to_char(c, '999G999G999G999') || ' Rows'); + RAISE NOTICE '.. got count % for %.%', t, schema_arg, r.tablename; + EXECUTE 'COMMENT ON TABLE ' || quote_ident(schema_arg) || '.' || quote_ident(r.tablename) ||' IS ' || t || ''; + END LOOP; + + RETURN 1; +END +$$ LANGUAGE plpgsql; + diff --git a/zabbix-server/tasks/main.yml b/zabbix-server/tasks/main.yml index fa933b9..d362eba 100644 --- a/zabbix-server/tasks/main.yml +++ b/zabbix-server/tasks/main.yml @@ -36,6 +36,12 @@ - database - zabbix +- name: ensure there is the commentcounts sql file + copy: src=commentcounts.sql dest=/usr/share/doc/zabbix-server-pgsql/commentcounts.sql + tags: + - database + - zabbix + - name: ensure we have a user on the database server postgresql_user: name="{{ zabbix_db_user }}" password="{{ zabbix_db_password }}" state=present role_attr_flags=NOSUPERUSER,NOCREATEDB become: yes @@ -107,6 +113,18 @@ - database - zabbix +- name: apply database commentcounts function + shell: psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} -f /usr/share/doc/zabbix-server-pgsql/commentcounts.sql && touch /var/lib/zabbix/.db_schema_countfunc + args: + creates: /var/lib/zabbix/.db_schema_countfunc + become: yes + become_user: zabbix + notify: + - restart zabbix server + tags: + - database + - zabbix + - name: include snmp-features include: snmp.yml -- GitLab