Merge pull request #53 from storiesbi/master
Fix legacy URL tag and network backend.
diff --git a/collectd/_service.sls b/collectd/_service.sls
index ff915e4..c17e26a 100644
--- a/collectd/_service.sls
+++ b/collectd/_service.sls
@@ -131,7 +131,7 @@
- group: root
- mode: 660
- defaults:
- backend: {{ backend|yaml }}
+ network_backend: {{ network_backend|yaml }}
- require:
- file: {{ client.service }}_client_conf_dir
- require_in:
diff --git a/collectd/files/backend/http.conf b/collectd/files/backend/http.conf
index 8787dbc..3bc1bc5 100644
--- a/collectd/files/backend/http.conf
+++ b/collectd/files/backend/http.conf
@@ -3,11 +3,12 @@
</LoadPlugin>
<Plugin write_http>
- <URL "http://{{ backend.host }}:{{ backend.port }}">
+ <Node>
+ URL "http://{{ backend.host }}:{{ backend.port }}"
Format "{{ backend.get('format', 'json')|upper }}"
StoreRates {{ backend.get('store_rates', True)|lower }}
{%- if backend.timeout is defined %}
Timeout {{ backend.timeout }}
{%- endif %}
- </URL>
+ </Node>
</Plugin>
diff --git a/collectd/files/backend/network.conf b/collectd/files/backend/network.conf
index e97c530..e3673a4 100644
--- a/collectd/files/backend/network.conf
+++ b/collectd/files/backend/network.conf
@@ -2,34 +2,14 @@
Globals false
</LoadPlugin>
-{%- for _, backend in client.backend.iteritems() %}
+{%- for _, backend in network_backend.iteritems() %}
<Plugin network>
- {%- if backend.mode == 'client' %}
- Server "{{ backend.host }}" "{{ backend.port }}"
-# <Server "{{ backend.host }}" "{{ backend.port }}">
-# SecurityLevel Encrypt
-# Username "{{ backend.user }}"
-# Password "{{ backend.password }}"
-# </Server>
- TimeToLive 128
- {%- endif %}
- {%- if backend.mode == 'server' %}
- Listen "{{ backend.host }}" "{{ backend.port }}"
-# <Listen "{{ backend.host }}" "{{ backend.port }}">
-# SecurityLevel Sign
-# AuthFile "/etc/collectd/passwd"
-# Interface "{{ backend.interface }}"
-# </Listen>
- MaxPacketSize 1024
- {%- endif %}
-
-# # proxy setup (client and server as above):
-# Forward true
-#
-# # statistics about the network backend itself
-# ReportStats false
-#
-# # "garbage collection"
-# CacheFlush 1800
+ {%- if backend.get('mode', 'client') == 'client' %}
+ Server "{{ backend.host }}" "{{ backend.port }}"
+ {%- endif %}
+ {%- if backend.get('mode', 'client') == 'server' %}
+ Listen "{{ backend.host }}" "{{ backend.port }}"
+ MaxPacketSize 1024
+ {%- endif %}
</Plugin>
{%- endfor %}
diff --git a/collectd/files/collectd_postgresql.conf b/collectd/files/collectd_postgresql.conf
new file mode 100644
index 0000000..7943623
--- /dev/null
+++ b/collectd/files/collectd_postgresql.conf
@@ -0,0 +1,114 @@
+<LoadPlugin postgresql>
+ Globals false
+</LoadPlugin>
+
+
+<Plugin postgresql>
+ <Query deadlocks>
+ Statement "SELECT deadlocks as num_deadlocks \
+ FROM pg_stat_database \
+ WHERE datname = $1;"
+
+ Param database
+
+ <Result>
+ Type "pg_xact"
+ InstancePrefix "num_deadlocks"
+ ValuesFrom "num_deadlocks"
+ </Result>
+ </Query>
+
+ <Query stream_lag>
+ Statement "SELECT coalesce(round(extract(epoch from (now() - \
+ pg_last_xact_replay_timestamp()))),0) AS time_lag"
+ <Result>
+ Type gauge
+ InstancePrefix "replication_stream_lag"
+ ValuesFrom "time_lag"
+ </Result>
+ </Query>
+
+ <Query row_stats>
+ Statement "SELECT sum(n_tup_ins) AS inserts, \
+ sum(n_tup_upd) AS updates, \
+ sum(n_tup_del) AS deletes \
+ FROM pg_stat_user_tables"
+ <Result>
+ Type derive
+ InstancePrefix "rows_inserted"
+ ValuesFrom "inserts"
+ </Result>
+ <Result>
+ Type derive
+ InstancePrefix "rows_updated"
+ ValuesFrom "updates"
+ </Result>
+ <Result>
+ Type derive
+ InstancePrefix "rows_deleted"
+ ValuesFrom "deletes"
+ </Result>
+ </Query>
+
+ <Query client_activity>
+ Statement "SELECT count(1) AS total, \
+ sum(CASE WHEN state = 'idle' \
+ THEN 1 ELSE 0 END) AS idle, \
+ sum(CASE WHEN state LIKE 'idle in%' \
+ THEN 1 ELSE 0 END) AS trans_idle, \
+ sum(CASE WHEN state = 'active' \
+ THEN 1 ELSE 0 END) AS active, \
+ sum(CASE WHEN now()-query_start > INTERVAL '1s' \
+ AND state = 'active' THEN 1 ELSE 0 END) AS slow \
+ FROM pg_stat_activity;"
+ <Result>
+ Type gauge
+ InstancePrefix "clients_total"
+ ValuesFrom "total"
+ </Result>
+ <Result>
+ Type gauge
+ InstancePrefix "clients_idle"
+ ValuesFrom "idle"
+ </Result>
+ <Result>
+ Type gauge
+ InstancePrefix "clients_idle_transaction"
+ ValuesFrom "trans_idle"
+ </Result>
+ <Result>
+ Type gauge
+ InstancePrefix "clients_active"
+ ValuesFrom "active"
+ </Result>
+ <Result>
+ Type gauge
+ InstancePrefix "clients_slow"
+ ValuesFrom "slow"
+ </Result>
+ </Query>
+
+ {%- for db_name, db in plugin.data.iteritems() %}
+ <Database {{db_name}}>
+ Host "{{db.users.0.host}}"
+ Port "{{db.users.0.get('port', 5432)}}"
+ User "{{db.users.0.name}}"
+ Password "{{db.users.0.password}}"
+ Query row_stats
+ Query client_activity
+ Query stream_lag
+ Query deadlocks
+ Query backends
+ Query transactions
+ Query queries
+ Query queries_by_table
+ Query query_plans
+ Query table_states
+ Query query_plans_by_table
+ Query table_states_by_table
+ Query disk_io
+ Query disk_io_by_table
+ Query disk_usage
+ </Database>
+ {%- endfor %}
+</Plugin>