passenger_datadog 0.2.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/README.md +8 -0
- data/bin/passenger-datadog +3 -2
- data/lib/passenger_datadog.rb +14 -7
- metadata +35 -46
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NDk0ZDhiMTc3YzU0YmNjNWEzZGQ5ZWI2MTI0NTRjZjg3OWJkODFkZQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8ebcdb70d77fe46e3f3976f75285406d71acec62
|
4
|
+
data.tar.gz: 5158eb6481792eaeaa9932958213fdffe406fe11
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjQyZGI0ZjQyNDI0MTRjNDRkMTg0ZjRkZDFlYjg2MDY4ZjU1ODFlMmI0MDA2
|
11
|
-
ZjkyZjRkY2RmOWVhMjVhMmVlMjNhNGViNzlmNGJiN2YzNTIwMGM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MGUxOGFiNjhiODBlYTgyNDBkMGNhMmM4OGZkYmMwMTA5ZWZjMmFmMmRkODMx
|
14
|
-
N2MxNDkxNjA5MDAyYWVmNWU2ZGM4MzU2NDJhNjcxNzg1OTNlNjJiZGM3MTJj
|
15
|
-
ZGE1ZDlhOTA5ZTI2MGY4MzljYTI5MDgyMWZlOGQ0MzM1ODY5YzI=
|
6
|
+
metadata.gz: 68e52f68e05cf76db97b2c45a0bd03e2c524e8daa093eebdbb551ed028ebab854a2d6571d8c4015ddedac8d4288a56e4cc4cec358fd407576ab9d9eafd7ead3e
|
7
|
+
data.tar.gz: ee12b91958a59e4c821c0195b586adde46152282db03b66324267e163aaf0e10bfc33d5c3382bb8f14933d25cddca51e9ee162db73276e1230e4e262e316105c
|
data/README.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
[](https://badge.fury.io/rb/passenger_datadog)
|
2
|
+
[](https://travis-ci.org/manheim/passenger-datadog)
|
3
|
+
[](https://codeclimate.com/github/manheim/passenger-datadog)
|
4
|
+
[](LICENSE)
|
5
|
+
|
1
6
|
# passenger-datadog
|
2
7
|
|
3
8
|
Inspired by [passengeri-datadog-monitor](https://github.com/Sjeanpierre/passenger-datadog-monitor)
|
@@ -17,6 +22,9 @@ in Passenger, make sure that same version of Passenger is installed for both use
|
|
17
22
|
```
|
18
23
|
$ gem install passenger_datadog
|
19
24
|
```
|
25
|
+
## Support
|
26
|
+
1.x Ruby >= 2.2
|
27
|
+
0.x Ruby < 2.2
|
20
28
|
|
21
29
|
## Usage
|
22
30
|
|
data/bin/passenger-datadog
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
#
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
3
4
|
$LOAD_PATH.unshift(File.dirname(File.expand_path(__FILE__)) + '/../lib')
|
4
5
|
require 'daemons'
|
5
6
|
require 'passenger_datadog'
|
6
7
|
|
7
|
-
Daemons.run_proc('passenger-datadog', :
|
8
|
+
Daemons.run_proc('passenger-datadog', dir_mode: :system) do
|
8
9
|
loop do
|
9
10
|
PassengerDatadog.run
|
10
11
|
sleep(30)
|
data/lib/passenger_datadog.rb
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'nokogiri'
|
3
|
-
require 'statsd'
|
4
|
+
require 'datadog/statsd'
|
4
5
|
|
5
6
|
class PassengerDatadog
|
6
|
-
GROUP_STATS = %w
|
7
|
-
|
7
|
+
GROUP_STATS = %w[capacity_used processes_being_spawned enabled_process_count
|
8
|
+
disabling_process_count disabled_process_count].freeze
|
9
|
+
PROCESS_STATS = %w[processed sessions busyness concurrency cpu rss
|
10
|
+
private_dirty pss swap real_memory vmsize].freeze
|
8
11
|
|
9
12
|
class << self
|
10
13
|
def run
|
11
14
|
status = `passenger-status --show=xml`
|
12
15
|
return if status.empty?
|
13
16
|
|
14
|
-
statsd = Statsd.new
|
17
|
+
statsd = Datadog::Statsd.new
|
15
18
|
|
16
19
|
statsd.batch do |s|
|
17
20
|
# Good job Passenger 4.0.10. Return non xml in your xml output.
|
@@ -29,13 +32,17 @@ class PassengerDatadog
|
|
29
32
|
|
30
33
|
parsed.xpath('//supergroups/supergroup/group').each do |group|
|
31
34
|
GROUP_STATS.each do |stat|
|
32
|
-
|
35
|
+
value = group.xpath(stat).text
|
36
|
+
next if value.empty?
|
37
|
+
s.gauge("passenger.#{stat}", value)
|
33
38
|
end
|
34
39
|
end
|
35
40
|
|
36
41
|
parsed.xpath('//supergroups/supergroup/group/processes/process').each_with_index do |process, index|
|
37
42
|
PROCESS_STATS.each do |stat|
|
38
|
-
|
43
|
+
value = process.xpath(stat).text
|
44
|
+
next if value.empty?
|
45
|
+
s.gauge("passenger.#{stat}", value, tags: ["passenger-process:#{index}"])
|
39
46
|
end
|
40
47
|
end
|
41
48
|
end
|
metadata
CHANGED
@@ -1,136 +1,126 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passenger_datadog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Rosenblum
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: daemons
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: dogstatsd-ruby
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.0
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 4.0.0
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- -
|
41
|
+
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
43
|
+
version: 2.0.0
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 4.0.0
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: nokogiri
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
53
|
+
version: '1.0'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- -
|
58
|
+
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
60
|
+
version: '1.0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: passenger
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- -
|
65
|
+
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
67
|
version: 4.0.0
|
62
|
-
- - <=
|
68
|
+
- - "<="
|
63
69
|
- !ruby/object:Gem::Version
|
64
70
|
version: 6.0.0
|
65
71
|
type: :runtime
|
66
72
|
prerelease: false
|
67
73
|
version_requirements: !ruby/object:Gem::Requirement
|
68
74
|
requirements:
|
69
|
-
- -
|
75
|
+
- - ">="
|
70
76
|
- !ruby/object:Gem::Version
|
71
77
|
version: 4.0.0
|
72
|
-
- - <=
|
78
|
+
- - "<="
|
73
79
|
- !ruby/object:Gem::Version
|
74
80
|
version: 6.0.0
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: bundler
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ~>
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '1.3'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '1.3'
|
89
81
|
- !ruby/object:Gem::Dependency
|
90
82
|
name: rake
|
91
83
|
requirement: !ruby/object:Gem::Requirement
|
92
84
|
requirements:
|
93
|
-
- - ~>
|
85
|
+
- - "~>"
|
94
86
|
- !ruby/object:Gem::Version
|
95
87
|
version: '10.1'
|
96
88
|
type: :development
|
97
89
|
prerelease: false
|
98
90
|
version_requirements: !ruby/object:Gem::Requirement
|
99
91
|
requirements:
|
100
|
-
- - ~>
|
92
|
+
- - "~>"
|
101
93
|
- !ruby/object:Gem::Version
|
102
94
|
version: '10.1'
|
103
95
|
- !ruby/object:Gem::Dependency
|
104
96
|
name: rspec
|
105
97
|
requirement: !ruby/object:Gem::Requirement
|
106
98
|
requirements:
|
107
|
-
- - ~>
|
99
|
+
- - "~>"
|
108
100
|
- !ruby/object:Gem::Version
|
109
101
|
version: '3.3'
|
110
102
|
type: :development
|
111
103
|
prerelease: false
|
112
104
|
version_requirements: !ruby/object:Gem::Requirement
|
113
105
|
requirements:
|
114
|
-
- - ~>
|
106
|
+
- - "~>"
|
115
107
|
- !ruby/object:Gem::Version
|
116
108
|
version: '3.3'
|
117
109
|
- !ruby/object:Gem::Dependency
|
118
110
|
name: rubocop
|
119
111
|
requirement: !ruby/object:Gem::Requirement
|
120
112
|
requirements:
|
121
|
-
- - ~>
|
113
|
+
- - "~>"
|
122
114
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0.
|
115
|
+
version: 0.52.0
|
124
116
|
type: :development
|
125
117
|
prerelease: false
|
126
118
|
version_requirements: !ruby/object:Gem::Requirement
|
127
119
|
requirements:
|
128
|
-
- - ~>
|
120
|
+
- - "~>"
|
129
121
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0.
|
131
|
-
description:
|
132
|
-
|
133
|
-
'
|
122
|
+
version: 0.52.0
|
123
|
+
description: " A tool for sending Passenger stats to Datadog.\n"
|
134
124
|
email: passenger_datadog@manheim.com
|
135
125
|
executables:
|
136
126
|
- passenger-datadog
|
@@ -153,19 +143,18 @@ require_paths:
|
|
153
143
|
- lib
|
154
144
|
required_ruby_version: !ruby/object:Gem::Requirement
|
155
145
|
requirements:
|
156
|
-
- -
|
146
|
+
- - ">="
|
157
147
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
148
|
+
version: 2.2.0
|
159
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
150
|
requirements:
|
161
|
-
- -
|
151
|
+
- - ">="
|
162
152
|
- !ruby/object:Gem::Version
|
163
153
|
version: '0'
|
164
154
|
requirements: []
|
165
155
|
rubyforge_project:
|
166
|
-
rubygems_version: 2.
|
156
|
+
rubygems_version: 2.6.13
|
167
157
|
signing_key:
|
168
158
|
specification_version: 4
|
169
159
|
summary: A tool for sending Passenger stats to Datadog
|
170
160
|
test_files: []
|
171
|
-
has_rdoc:
|