instana 1.3.3 → 1.4.0

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: 5188167998cd8f55f33cb1e5efabd7743d9320be
4
- data.tar.gz: a8b730858f4f70b2cfdd4fedcda867b54484e580
3
+ metadata.gz: b99877f95d6100bd27c7baaf1c55480ee4144d94
4
+ data.tar.gz: 7ff1ffe1eda5611cc0abcf0be984929ec081971c
5
5
  SHA512:
6
- metadata.gz: e78d461c1c5442e885621209f64c3cc47e20f49858d4237b61404caac6e9872f1b8660e9e9ae50443e9cdeeed63345bacf159becb6c1a62e90996c5e7fdd5f57
7
- data.tar.gz: 5794cb3bb5b488406d802210a1234a1b2d1293eb2d451aeb6d91651719fca4e00b5ebeaeeaa2961b0fc3bb5137d154da6df39c2b116be94ff2905f3d36b6e9dc
6
+ metadata.gz: 0a97650d236dab27448c10643668081895a4d162d0f2b5d9706527b5d88d779723997a913d36b2bee50401b37a5c9d50394862035d5bde109c77c9c241dbd513
7
+ data.tar.gz: 893a53e42b37e577cab9e71ead189a15eb2f60a4c8cefd4b1eab9df4f0bf1aeb30a6b12eac731d444058a8c2ca6f6e37ef5b57eca214ddbda906c1a17ac9e937
data/README.md CHANGED
@@ -20,6 +20,7 @@ Any and all feedback is welcome. Happy Ruby visibility.
20
20
  [![rails](https://s3.amazonaws.com/instana/rails-logo.jpg?1)](http://rubyonrails.org/)
21
21
  [![roda](https://s3.amazonaws.com/instana/roda-logo.png?1)](http://roda.jeremyevans.net/)
22
22
  [![cuba](https://s3.amazonaws.com/instana/cuba-logo.png?1)](http://cuba.is/)
23
+ [![mina logo 100px](https://cloud.githubusercontent.com/assets/395132/23832558/fcd5bdb2-0736-11e7-9809-3016e89698e2.png)](https://github.com/instana/mina-instana)
23
24
  [![sinatra](https://s3.amazonaws.com/instana/sinatra-logo.png?1)](http://www.sinatrarb.com/)
24
25
  [![padrino](https://s3.amazonaws.com/instana/padrino-logo.png?1)](http://padrinorb.com/)
25
26
  [![rack](https://s3.amazonaws.com/instana/rack-logo.png?1)](https://rack.github.io/)
@@ -1,8 +1,9 @@
1
- require 'net/http'
2
- require 'uri'
3
1
  require 'json'
4
- require 'timers'
2
+ require 'net/http'
3
+ require 'socket'
5
4
  require 'sys/proctable'
5
+ require 'timers'
6
+ require 'uri'
6
7
  include Sys
7
8
 
8
9
  module Instana
@@ -173,6 +174,15 @@ module Instana
173
174
  announce_payload[:pid] = pid_namespace? ? get_real_pid : Process.pid
174
175
  announce_payload[:args] = @process[:arguments]
175
176
 
177
+
178
+ if @is_linux && !::Instana.test?
179
+ # We create an open socket to the host agent in case we are running in a container
180
+ # and the real pid needs to be detected.
181
+ socket = TCPSocket.new @discovered[:agent_host], @discovered[:agent_port]
182
+ announce_payload[:fd] = socket.fileno
183
+ announce_payload[:inode] = File.readlink("/proc/#{Process.pid}/fd/#{socket.fileno}")
184
+ end
185
+
176
186
  uri = URI.parse("http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{DISCOVERY_PATH}")
177
187
  req = Net::HTTP::Put.new(uri)
178
188
  req.body = announce_payload.to_json
@@ -193,6 +203,8 @@ module Instana
193
203
  Instana.logger.error "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
194
204
  Instana.logger.debug e.backtrace.join("\r\n")
195
205
  return false
206
+ ensure
207
+ socket.close if socket
196
208
  end
197
209
 
198
210
  # Method to report metrics data to the host agent.
@@ -454,8 +466,15 @@ module Instana
454
466
  #
455
467
  def get_real_pid
456
468
  raise RuntimeError.new("Unsupported platform: get_real_pid") unless @is_linux
457
- v = File.open("/proc/#{Process.pid}/sched", &:readline)
458
- v.match(/\d+/).to_s.to_i
469
+
470
+ sched_file = "/proc/#{Process.pid}/sched"
471
+ pid = Process.pid
472
+
473
+ if File.exist?(sched_file)
474
+ v = File.open(sched_file, &:readline)
475
+ pid = v.match(/\d+/).to_s.to_i
476
+ end
477
+ pid
459
478
  end
460
479
 
461
480
  # Determine whether the pid has changed since Agent start.
@@ -1,4 +1,4 @@
1
1
  module Instana
2
- VERSION = "1.3.3"
2
+ VERSION = "1.4.0"
3
3
  VERSION_FULL = "instana-#{VERSION}"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instana
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Giacomo Lombardo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
11
+ date: 2017-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler