newrelic-manticore 0.1.1-java
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 +7 -0
- data/.gitignore +11 -0
- data/.rspec +2 -0
- data/.rubocop.yml +12 -0
- data/.travis.yml +9 -0
- data/Changelog.md +14 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +33 -0
- data/Rakefile +24 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/new_relic/manticore.rb +3 -0
- data/lib/new_relic/manticore/instrumentation.rb +118 -0
- data/lib/new_relic/manticore/wrapped_request.rb +22 -0
- data/lib/new_relic/manticore/wrapped_response.rb +18 -0
- data/lib/newrelic/manticore.rb +2 -0
- data/lib/newrelic/manticore/version.rb +7 -0
- data/newrelic-manticore.gemspec +42 -0
- metadata +204 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b65407b94c439f088f0439f2abbbc59cf4744718
|
4
|
+
data.tar.gz: aa8d3f6e39791945dc9e450336e0f0ad758f87ce
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7ced02ea954f04bef5420e3b802a422d2ae3f37bfd8fc58690f5cf3a83c9182fd154dadd82925d644465096094bbab1f37f0e0be90624b1b7afcaa3f77e3a827
|
7
|
+
data.tar.gz: 0c2a79e73faa7a9c066744b8af4adae56571f791b7963b28b8a78c0a1b70c40f9cbf694b50ee3224d352d74e0df6910785c2999118c9ac5c806c15fd4f64793d
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/Changelog.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [0.1.1] - 2018-10-09
|
8
|
+
### Fixed
|
9
|
+
- Time spent inside Manticore requests inside database calls where not included in the exclusive time stats of the database request.
|
10
|
+
- Fixed instrumentation when using manticore with faraday adapter.
|
11
|
+
|
12
|
+
## [0.1.0] - 2018-10-09
|
13
|
+
### Added
|
14
|
+
- Basic manticore instrumentation.
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2018 Runtastic
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
[travis]: https://travis-ci.org/runtastic/newrelic-manticore
|
2
|
+
[rubygems]: https://rubygems.org/gems/newrelic-manticore
|
3
|
+
[manticore]: https://gitlab.com/cheald/manticore
|
4
|
+
[mit]: http://opensource.org/licenses/MIT
|
5
|
+
[cc]: http://contributor-covenant.org
|
6
|
+
|
7
|
+
# NewrelicManticore
|
8
|
+
|
9
|
+
[][travis] [][rubygems]
|
10
|
+
|
11
|
+
Adds NewRelic instrumentation for the [Manticore JRuby HTTP client][manticore].
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
`$ gem 'newrelic-manticore'`
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
`$ bundle`
|
21
|
+
|
22
|
+
## How it works
|
23
|
+
When `newrelic/manticore` is required (e.g. automatically by Bundler), the gem becomes active.
|
24
|
+
It hooks itself into `Manticore::Client#request` and traces your HTTP calls as external requests,
|
25
|
+
adding also the necessary headers for cross application tracing.
|
26
|
+
|
27
|
+
## Contributing
|
28
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/runtastic/newrelic-manticore.
|
29
|
+
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected
|
30
|
+
to adhere to the [Contributor Covenant code of conduct][cc].
|
31
|
+
|
32
|
+
## License
|
33
|
+
The gem is available as open source under [the terms of the MIT License][mit].
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rake/testtask"
|
5
|
+
|
6
|
+
task :init do
|
7
|
+
Rake::Task["rubocop:install"].execute
|
8
|
+
end
|
9
|
+
|
10
|
+
require "rubocop/rake_task"
|
11
|
+
RuboCop::RakeTask.new
|
12
|
+
namespace :rubocop do
|
13
|
+
desc "Install Rubocop as pre-commit hook"
|
14
|
+
task :install do
|
15
|
+
require "rubocop_runner"
|
16
|
+
RubocopRunner.install
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Rake::TestTask.new do |t|
|
21
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
22
|
+
end
|
23
|
+
|
24
|
+
task default: :test
|
data/bin/console
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bundler/setup"
|
5
|
+
require "newrelic-manticore"
|
6
|
+
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
+
# require "pry"
|
12
|
+
# Pry.start
|
13
|
+
|
14
|
+
require "irb"
|
15
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
|
5
|
+
require "new_relic/agent/method_tracer"
|
6
|
+
require "new_relic/agent/http_clients/abstract_request"
|
7
|
+
|
8
|
+
require "new_relic/manticore/wrapped_request"
|
9
|
+
require "new_relic/manticore/wrapped_response"
|
10
|
+
|
11
|
+
module NewRelic
|
12
|
+
module Manticore
|
13
|
+
# We do not want to create a segment if there is no newrelic
|
14
|
+
# transaction or if we are inside a database segment.
|
15
|
+
#
|
16
|
+
# An external call segment inside a database segment would
|
17
|
+
# deduct the time needed in manticore from the database call,
|
18
|
+
# which we want to be the total time needed for the database
|
19
|
+
# operation
|
20
|
+
def self.create_segment?
|
21
|
+
state = NewRelic::Agent::TransactionState.tl_get
|
22
|
+
return false unless state && state.current_transaction
|
23
|
+
|
24
|
+
existing_segments = state.current_transaction.segments
|
25
|
+
|
26
|
+
existing_segments.empty? ||
|
27
|
+
!existing_segments.last.is_a?(
|
28
|
+
::NewRelic::Agent::Transaction::DatastoreSegment
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
# rubocop:disable Metrics/BlockLength
|
33
|
+
DependencyDetection.defer do
|
34
|
+
@name = :manticore
|
35
|
+
|
36
|
+
depends_on do
|
37
|
+
defined?(::Manticore::Client) &&
|
38
|
+
!NewRelic::Control.instance["disable_manticore"] &&
|
39
|
+
ENV["NEWRELIC_ENABLE"].to_s !~ /false|off|no/i
|
40
|
+
end
|
41
|
+
|
42
|
+
executes do
|
43
|
+
NewRelic::Agent.logger.info "Installing Manticore Instrumentation"
|
44
|
+
end
|
45
|
+
|
46
|
+
executes do
|
47
|
+
require "new_relic/agent/external"
|
48
|
+
PARALLEL_REQUEST_DUMMY = OpenStruct.new(
|
49
|
+
host_from_header: "<MultipleHosts>"
|
50
|
+
)
|
51
|
+
|
52
|
+
::Manticore::Client.class_eval do
|
53
|
+
# This is called for parallel requests that are executed in
|
54
|
+
# a batch
|
55
|
+
#
|
56
|
+
# rubocop:disable Metrics/MethodLength
|
57
|
+
def execute_with_newrelic_trace!
|
58
|
+
if NewRelic::Manticore.create_segment?
|
59
|
+
segment = NewRelic::Agent::External.start_segment(
|
60
|
+
library: "Manticore",
|
61
|
+
uri: @async_requests.first.request.uri.to_s,
|
62
|
+
procedure: "Parallel batch"
|
63
|
+
)
|
64
|
+
segment.add_request_headers(PARALLEL_REQUEST_DUMMY)
|
65
|
+
end
|
66
|
+
execute_without_newrelic_trace!
|
67
|
+
ensure
|
68
|
+
segment.finish if defined?(segment) && segment
|
69
|
+
end
|
70
|
+
# rubocop:enable Metrics/MethodLength
|
71
|
+
|
72
|
+
alias_method :execute_without_newrelic_trace!, :execute!
|
73
|
+
alias_method :execute!, :execute_with_newrelic_trace!
|
74
|
+
end
|
75
|
+
|
76
|
+
::Manticore::Response.class_eval do
|
77
|
+
# This is called for every request, also parallel and async
|
78
|
+
# requests.
|
79
|
+
#
|
80
|
+
# rubocop:disable Metrics/MethodLength
|
81
|
+
def call_with_newrelic_trace
|
82
|
+
if NewRelic::Manticore.create_segment?
|
83
|
+
segment = create_newrelic_segment
|
84
|
+
|
85
|
+
segment.add_request_headers(WrappedRequest.new(@request))
|
86
|
+
on_complete do |response|
|
87
|
+
begin
|
88
|
+
segment.read_response_headers(WrappedResponse.new(response))
|
89
|
+
ensure
|
90
|
+
segment.finish
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
call_without_newrelic_trace
|
95
|
+
rescue StandardError => e
|
96
|
+
segment.finish if defined?(segment) && segment
|
97
|
+
raise e
|
98
|
+
end
|
99
|
+
# rubocop:enable Metrics/MethodLength
|
100
|
+
|
101
|
+
alias_method :call_without_newrelic_trace, :call
|
102
|
+
alias_method :call, :call_with_newrelic_trace
|
103
|
+
|
104
|
+
def create_newrelic_segment
|
105
|
+
NewRelic::Agent::External.start_segment(
|
106
|
+
library: "Manticore",
|
107
|
+
uri: @request.uri.to_s,
|
108
|
+
procedure: @request.method
|
109
|
+
).tap do |segment|
|
110
|
+
segment.record_metrics = false if segment.parent.is_a?(::NewRelic::Agent::Transaction::DatastoreSegment)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
# rubocop:enable Metrics/BlockLength
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module NewRelic
|
2
|
+
module Manticore
|
3
|
+
class WrappedRequest < Agent::HTTPClients::AbstractRequest
|
4
|
+
def initialize(request)
|
5
|
+
@request = request
|
6
|
+
end
|
7
|
+
|
8
|
+
def [](key)
|
9
|
+
_, value = @request.headers.find { |k, _| k.casecmp(key).zero? }
|
10
|
+
value
|
11
|
+
end
|
12
|
+
|
13
|
+
def []=(key, value)
|
14
|
+
@request.set_header(key, value)
|
15
|
+
end
|
16
|
+
|
17
|
+
def host_from_header
|
18
|
+
self["Host"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module NewRelic
|
2
|
+
module Manticore
|
3
|
+
class WrappedResponse
|
4
|
+
def initialize(response)
|
5
|
+
@headers = response.headers
|
6
|
+
end
|
7
|
+
|
8
|
+
def [](key)
|
9
|
+
_, value = @headers.find { |k, _| k.casecmp(key).zero? }
|
10
|
+
value
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_hash
|
14
|
+
@headers
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require "newrelic/manticore/version"
|
6
|
+
|
7
|
+
# rubocop:disable Metrics/BlockLength
|
8
|
+
Gem::Specification.new do |gem|
|
9
|
+
gem.name = "newrelic-manticore"
|
10
|
+
gem.version = Newrelic::Manticore::VERSION
|
11
|
+
gem.authors = ["Dominik Goltermann",
|
12
|
+
"Alexander Junger"]
|
13
|
+
|
14
|
+
gem.email = ["dominik.goltermann@runtastic.com",
|
15
|
+
"alexander.junger@runtastic.com"]
|
16
|
+
|
17
|
+
gem.summary = "Newrelic support for manticore"
|
18
|
+
gem.description = "Adds manticore tracking for HTTP calls to Newrelic"
|
19
|
+
gem.homepage = "http://github.com/runtastic/newrelic-manticore"
|
20
|
+
gem.license = "MIT"
|
21
|
+
|
22
|
+
gem.platform = "java"
|
23
|
+
gem.files = `git ls-files -z`.split("\x0").reject do |f|
|
24
|
+
f.match(%r{^(test|spec|features)/})
|
25
|
+
end
|
26
|
+
gem.bindir = "exe"
|
27
|
+
gem.executables = gem.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
gem.require_paths = ["lib"]
|
29
|
+
|
30
|
+
gem.add_runtime_dependency "newrelic_rpm", "~> 5"
|
31
|
+
|
32
|
+
gem.add_development_dependency "bundler", "~> 1.13"
|
33
|
+
gem.add_development_dependency "faraday", "~> 0"
|
34
|
+
gem.add_development_dependency "manticore", "~> 0"
|
35
|
+
gem.add_development_dependency "minitest"
|
36
|
+
gem.add_development_dependency "pry"
|
37
|
+
gem.add_development_dependency "rake", "~> 10.0"
|
38
|
+
gem.add_development_dependency "rspec", "~> 3.0"
|
39
|
+
gem.add_development_dependency "rt_rubocop_defaults", "~> 1"
|
40
|
+
gem.add_development_dependency "rubocop_runner", "~> 2"
|
41
|
+
end
|
42
|
+
# rubocop:enable Metrics/BlockLength
|
metadata
ADDED
@@ -0,0 +1,204 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: newrelic-manticore
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Dominik Goltermann
|
8
|
+
- Alexander Junger
|
9
|
+
autorequire:
|
10
|
+
bindir: exe
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-10-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: newrelic_rpm
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '5'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '5'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bundler
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.13'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.13'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: faraday
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: manticore
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: minitest
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: pry
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rake
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '10.0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '10.0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '3.0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '3.0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rt_rubocop_defaults
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rubocop_runner
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '2'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '2'
|
154
|
+
description: Adds manticore tracking for HTTP calls to Newrelic
|
155
|
+
email:
|
156
|
+
- dominik.goltermann@runtastic.com
|
157
|
+
- alexander.junger@runtastic.com
|
158
|
+
executables: []
|
159
|
+
extensions: []
|
160
|
+
extra_rdoc_files: []
|
161
|
+
files:
|
162
|
+
- ".gitignore"
|
163
|
+
- ".rspec"
|
164
|
+
- ".rubocop.yml"
|
165
|
+
- ".travis.yml"
|
166
|
+
- Changelog.md
|
167
|
+
- Gemfile
|
168
|
+
- LICENSE
|
169
|
+
- README.md
|
170
|
+
- Rakefile
|
171
|
+
- bin/console
|
172
|
+
- bin/setup
|
173
|
+
- lib/new_relic/manticore.rb
|
174
|
+
- lib/new_relic/manticore/instrumentation.rb
|
175
|
+
- lib/new_relic/manticore/wrapped_request.rb
|
176
|
+
- lib/new_relic/manticore/wrapped_response.rb
|
177
|
+
- lib/newrelic/manticore.rb
|
178
|
+
- lib/newrelic/manticore/version.rb
|
179
|
+
- newrelic-manticore.gemspec
|
180
|
+
homepage: http://github.com/runtastic/newrelic-manticore
|
181
|
+
licenses:
|
182
|
+
- MIT
|
183
|
+
metadata: {}
|
184
|
+
post_install_message:
|
185
|
+
rdoc_options: []
|
186
|
+
require_paths:
|
187
|
+
- lib
|
188
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
requirements: []
|
199
|
+
rubyforge_project:
|
200
|
+
rubygems_version: 2.5.1
|
201
|
+
signing_key:
|
202
|
+
specification_version: 4
|
203
|
+
summary: Newrelic support for manticore
|
204
|
+
test_files: []
|