newrelic_postgres_plugin 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6beba3e07419260f3b4c6c1f6b57330fdca6458
4
- data.tar.gz: 8a7cf2a2f411e3b3033a0ec0f41acc1c5b4d7731
3
+ metadata.gz: dbe18cb196091deffd2bc167b9248c79b54c5d5c
4
+ data.tar.gz: 85eca77e7b685dab29a1de2639e5161a145c9aea
5
5
  SHA512:
6
- metadata.gz: c21b206678c70f7ec299539e3aa40d92a56615eaf40ca4f1604960a39ca66242ca643c51d77e66d12d770855495e601b1d3a22bfc6c6cc3cc492929539dd53bb
7
- data.tar.gz: 4b92762c91c318069f6c4c510667db3200daeff9446c9bd2771d4ba5fdd01aefcee775e51897237885d8122161477a8141fb4a440a571e4d7c3a469e94206016
6
+ metadata.gz: a4b3e7dcb3f6f318f94b443a03165823f4b88f8a99a493df0479b3a432bcaeb250a5081b8aebb2e510513dd42edd0161e2def7a10eebeb18386ab627613ac592
7
+ data.tar.gz: f6b1501ab4440e7cec1100cb3710cd41c64fbc46dd9d8a1efab32040c28aa5d6a72d132261509a8ca3dfe9f8dd1d87abe5ba398a9b4fcc8fcfe007a5ec2994ce
data/README.md CHANGED
@@ -1,4 +1,64 @@
1
- newrelic_postgres_plugin
1
+ NewRelic Postgres Plugin
2
2
  ========================
3
3
 
4
4
  A NewRelic Platform Postgres Plugin
5
+
6
+ The New Relic Postgres Plugin enables integrated monitoring of your Postgres database in a custom NewRelic dashboard. Currently the following metrics are recorded:
7
+
8
+ * Index size, hit rate, and count
9
+ * Cache hit rate
10
+ * Idle and active connection counts
11
+ * BGWriter metrics
12
+ * Tuple metrics
13
+ * Transactions committed and rolled back
14
+
15
+ ## Requirements
16
+
17
+ ### Proxy host
18
+
19
+ You need a host to install the plugin on that is able to poll the desired Postgres database. That
20
+ host also needs Ruby (tested with 2.0.0), and support for rubygems.
21
+
22
+
23
+ ### Postgres
24
+
25
+ This plugin has been tested with with a few different Postgres version and should work with any version compatible with the pg gem.
26
+
27
+
28
+ ## Installation and Running
29
+
30
+ 1. Install this gem from RubyGems:
31
+
32
+ ```gem install newrelic_postgres_plugin```
33
+
34
+ 2. Create an installation directory (like /opt/newrelic/postgres ).
35
+ 3. In the installation directory, execute
36
+
37
+ ```pg_monitor install -l LICENSE_KEY```
38
+
39
+ using the license key from your New Relic account.
40
+ 4. Edit the +config/newrelic_plugin.yml+ file generated in step 4. Setup host/port/user/password/dbname for your postgres connection.
41
+ 5. Execute
42
+
43
+ ```pg_monitor run```
44
+
45
+ 6. You should now see your results in the left-hand navigation of the NewRelic web UI under a tab labeled 'Postgres'.
46
+
47
+ ## Heroku Instructions
48
+
49
+ Unlike the default NewRelic Postgres plugin, this plugin is designed to be fully compatible with monitoring Heroku Postgres. In fact, we've even created a simple app you can run on Heroku to monitor your existing apps.
50
+
51
+ Instructions for using Heroku as your proxy host can be found in the [heroku_postgres_monitor](https://github.com/GoBoundless/heroku_postgres_monitor) repo.
52
+
53
+ ## Support
54
+
55
+ Please use Github issue for support. We will do our best to address issues in a timely fashion.
56
+
57
+ ## Developer Instructions
58
+
59
+ 1. Fork/Clone the repository
60
+ 2. Install bundler and run:
61
+
62
+ ```bundle install```
63
+
64
+ 3. Run <b><tt>rake -T</tt></b> to see rake options, including tests.
@@ -23,4 +23,5 @@ agents:
23
23
  user: 'username'
24
24
  password: 'password'
25
25
  dbname: 'database_name'
26
- sslmode: 'require'
26
+ sslmode: 'require' # (disable|allow|prefer|require)
27
+ label: 'Production DB' # This label is optional and will default to the server hostname - it shows up in the NewRelic Web UI
@@ -2,5 +2,5 @@ require 'rubygems'
2
2
  require 'newrelic_postgres_plugin/agent'
3
3
 
4
4
  module NewRelic::PostgresPlugin
5
- VERSION = '0.1.2'
5
+ VERSION = '0.1.3'
6
6
  end
@@ -21,8 +21,8 @@ module NewRelic::PostgresPlugin
21
21
 
22
22
  agent_guid 'com.boundless.postgres'
23
23
  agent_version '1.0.0'
24
- agent_config_options :host, :port, :user, :password, :dbname, :sslmode
25
- agent_human_labels('Postgres') { "#{host}" }
24
+ agent_config_options :host, :port, :user, :password, :dbname, :sslmode, :label
25
+ agent_human_labels('Postgres') { "#{label || host}" }
26
26
 
27
27
  def initialize name, agent_info, options={}
28
28
  @previous_metrics = {}
@@ -92,17 +92,19 @@ module NewRelic::PostgresPlugin
92
92
  @connection.exec(database_query) do |result|
93
93
  result.each do |row|
94
94
  database_name = row['datname']
95
- report_metric "Database/#{database_name}/Backends", '', row['numbackends'].to_i
96
- report_derived_metric "Database/#{database_name}/Transactions/Committed", '', row['xact_commit'].to_i
97
- report_derived_metric "Database/#{database_name}/Transactions/Rolled Back", '', row['xact_rollback'].to_i
98
- report_derived_metric "Database/#{database_name}/Tuples/Read from Disk", '', row['blks_read'].to_i
99
- report_derived_metric "Database/#{database_name}/Tuples/Read Cache Hit", '', row['blks_hit'].to_i
100
- report_derived_metric "Database/#{database_name}/Tuples/Returned/From Sequential", '', row['tup_returned'].to_i
101
- report_derived_metric "Database/#{database_name}/Tuples/Returned/From Bitmap", '', row['tup_fetched'].to_i
102
- report_derived_metric "Database/#{database_name}/Tuples/Writes/Inserts", '', row['tup_inserted'].to_i
103
- report_derived_metric "Database/#{database_name}/Tuples/Writes/Updates", '', row['tup_updated'].to_i
104
- report_derived_metric "Database/#{database_name}/Tuples/Writes/Deletes", '', row['tup_deleted'].to_i
105
- report_derived_metric "Database/#{database_name}/Conflicts", '', row['conflicts'].to_i
95
+ if database_name == dbname
96
+ report_metric "Database/#{database_name}/Backends", '', row['numbackends'].to_i
97
+ report_derived_metric "Database/#{database_name}/Transactions/Committed", '', row['xact_commit'].to_i
98
+ report_derived_metric "Database/#{database_name}/Transactions/Rolled Back", '', row['xact_rollback'].to_i
99
+ report_derived_metric "Database/#{database_name}/Tuples/Read from Disk", '', row['blks_read'].to_i
100
+ report_derived_metric "Database/#{database_name}/Tuples/Read Cache Hit", '', row['blks_hit'].to_i
101
+ report_derived_metric "Database/#{database_name}/Tuples/Returned/From Sequential", '', row['tup_returned'].to_i
102
+ report_derived_metric "Database/#{database_name}/Tuples/Returned/From Bitmap", '', row['tup_fetched'].to_i
103
+ report_derived_metric "Database/#{database_name}/Tuples/Writes/Inserts", '', row['tup_inserted'].to_i
104
+ report_derived_metric "Database/#{database_name}/Tuples/Writes/Updates", '', row['tup_updated'].to_i
105
+ report_derived_metric "Database/#{database_name}/Tuples/Writes/Deletes", '', row['tup_deleted'].to_i
106
+ report_derived_metric "Database/#{database_name}/Conflicts", '', row['conflicts'].to_i
107
+ end
106
108
  end
107
109
  end
108
110
  end
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'newrelic_postgres_plugin'
16
- s.version = '0.1.2'
17
- s.date = '2013-06-20'
16
+ s.version = '0.1.3'
17
+ s.date = '2013-07-10'
18
18
  s.rubyforge_project = 'newrelic_postgres_plugin'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -75,6 +75,7 @@ to find out how to install and run the plugin agent.
75
75
  lib/newrelic_postgres_plugin.rb
76
76
  lib/newrelic_postgres_plugin/agent.rb
77
77
  newrelic_postgres_plugin.gemspec
78
+ postgresql.png
78
79
  ]
79
80
  # = MANIFEST =
80
81
 
data/postgresql.png ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_postgres_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Hodgson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-20 00:00:00.000000000 Z
11
+ date: 2013-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: newrelic_plugin
@@ -58,6 +58,7 @@ files:
58
58
  - lib/newrelic_postgres_plugin.rb
59
59
  - lib/newrelic_postgres_plugin/agent.rb
60
60
  - newrelic_postgres_plugin.gemspec
61
+ - postgresql.png
61
62
  homepage: http://boundless.com
62
63
  licenses: []
63
64
  metadata: {}