Add postgresql plugin.
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>