oneapm_rpm 1.2.3 → 1.2.4.rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWFiZTc3ZGJlMzdkOTE2YzNiYzNjOTZkY2FmYmZiZWQ4MzlkZTk3OA==
4
+ MDdjYTAyMGU0ZGRmMjI1MjgzZmE2MzA1OGZjNGZhOTZjNzhjNjA2Nw==
5
5
  data.tar.gz: !binary |-
6
- OTkzNTFiOTk2NDdjMzk0MTVlNzYzOTg5OTE3MTllZjc5ZWM0ZjVmMw==
6
+ YmY4MzUyODkxMWRhYTA4YmRkOGIxOTc5MmIyMmU0NDUwNGI0NTk2NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjUzMjkyZjg0ZDg1MTQxMWY3ZTYzNGExNWU0Y2U4ZDc2ZGM0MDIxNTljNjlh
10
- ZTI0YTc0NDMzMDg3MDM0MTdjMGI2N2E2MDAyY2JmZmE2ZDIyMmNkMjI0OGNl
11
- MDhiN2ZiMGIzMjgyN2ZkYWRkYzQzYjk2NTEwNjJkYjhjOGRmOTg=
9
+ M2NkZDYwM2NhZjk5MDE4MjcxYTZhZjI1MzgxZDI4NzMwN2MxYzY3NmY0MGYw
10
+ ZWU2YzAxNDI2YzM1YmY5YjkxMDQzZDIxM2QwNmVkYTNiZDFjMTQ1YTFlYjJm
11
+ NGFjOTBmM2FmYjc3YTlkZWVhMTVjZGE4ZDBmMzZkNGViNmM1MjQ=
12
12
  data.tar.gz: !binary |-
13
- MjZjY2RjOGQxYmI2M2Y0NTRkNTlkNGE4MWIwYjJhOTYzOTIxMGUyMTNmYzdh
14
- YTVmYzZmZGYyZDc5YzY3NjM3OGVmNzBlMTdmNWMxZWVjZjExZjEzZTQ1MWU4
15
- NmRiODk4MDU2ZDY1OWZmMzg0NDRmMGNiNjVjZWM4NDc4NTVkODk=
13
+ MmFlODU2MzkxZDVkNTE4YTUwMDFjYTk1OTFhZGMyMmNkMmU0ODQ3ODkwYjBl
14
+ MzNlNjJjZjJlMzdkMTZiZTIwZTdlNTVjNWFmNWIxYzhhNDk2YWZmZTYxYjk3
15
+ ZTVjZjkzYTkzNjEyY2M1ODM3NzUwY2NjYWMyYmMwNjY3ZmQwNjU=
@@ -47,6 +47,7 @@ module OneApm
47
47
  RUBY_PLATFORM.downcase
48
48
  end
49
49
  end
50
+
50
51
  def platform
51
52
  OneApm::Collector::Samplers::MemorySampler.platform
52
53
  end
@@ -60,12 +61,24 @@ module OneApm
60
61
 
61
62
  class Base
62
63
 
64
+ def pgrp_id
65
+ Process.getpgrp
66
+ end
67
+
68
+ def pids
69
+ `ps -o pid= -g #{pgrp_id}`.split("\n")[0..-1] rescue [Process.pid]
70
+ end
71
+
63
72
  def can_run?
64
73
  return false if @broken
65
74
  m = get_memory rescue nil
66
75
  m && m > 0
67
76
  end
68
77
 
78
+ def get_memory
79
+ pids.inject(0.0){|m, pid| m + get_memory_by_pid(pid)}
80
+ end
81
+
69
82
  def get_sample
70
83
  return nil if @broken
71
84
  begin
@@ -104,10 +117,10 @@ module OneApm
104
117
  @command = command
105
118
  end
106
119
 
107
- def get_memory
108
- process = $$
120
+ def get_memory_by_pid pid
121
+ process = pid
109
122
  memory = `#{@command} #{process}`.split("\n")[1].to_f / 1024.0 rescue nil
110
- raise "Faulty command: `#{@command} #{process}`" if memory.nil? || memory <= 0
123
+ raise "Faulty command: `#{@command} #{process}`" if memory.nil? || memory < 0
111
124
  memory
112
125
  end
113
126
 
@@ -119,16 +132,16 @@ module OneApm
119
132
 
120
133
  class ProcStatus < Base
121
134
 
122
- def get_memory
123
- proc_status = File.open(proc_status_file, "r") {|f| f.read_nonblock(4096).strip }
135
+ def get_memory_by_pid pid
136
+ proc_status = File.open(proc_status_file(pid), "r") {|f| f.read_nonblock(4096).strip }
124
137
  if proc_status =~ /RSS:\s*(\d+) kB/i
125
138
  return $1.to_f / 1024.0
126
139
  end
127
140
  raise "Unable to find RSS in #{proc_status_file}"
128
141
  end
129
142
 
130
- def proc_status_file
131
- "/proc/#{$$}/status"
143
+ def proc_status_file pid=Process.pid
144
+ "/proc/#{pid}/status"
132
145
  end
133
146
 
134
147
  def to_s
@@ -5,9 +5,10 @@ module OneApm
5
5
 
6
6
  MAJOR = 1
7
7
  MINOR = 2
8
- TINY = 3
8
+ TINY = 4
9
+ TAG = 'rc1'
9
10
 
10
- STRING = [MAJOR, MINOR, TINY].compact.join('.')
11
+ STRING = [MAJOR, MINOR, TINY, TAG].compact.join('.')
11
12
 
12
13
  end
13
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneapm_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - oneapm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-30 00:00:00.000000000 Z
11
+ date: 2015-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake