newrelic_rpm 9.3.0 → 9.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.build_ignore +6 -1
- data/CHANGELOG.md +43 -0
- data/README.md +4 -0
- data/lib/new_relic/agent/configuration/default_source.rb +25 -2
- data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -2
- data/lib/new_relic/agent/instrumentation/memcache.rb +2 -2
- data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
- data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
- data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +52 -0
- data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
- data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +30 -0
- data/lib/new_relic/agent/instrumentation/roda.rb +33 -0
- data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
- data/lib/new_relic/agent/log_event_attributes.rb +1 -1
- data/lib/new_relic/agent/new_relic_service.rb +33 -17
- data/lib/new_relic/agent/pipe_service.rb +1 -1
- data/lib/new_relic/agent/tracer.rb +4 -3
- data/lib/new_relic/agent/transaction/request_attributes.rb +45 -7
- data/lib/new_relic/agent/transaction.rb +5 -4
- data/lib/new_relic/agent/utilization/vendor.rb +5 -7
- data/lib/new_relic/agent.rb +1 -1
- data/lib/new_relic/cli/command.rb +1 -0
- data/lib/new_relic/control/class_methods.rb +1 -7
- data/lib/new_relic/control/frameworks/roda.rb +20 -0
- data/lib/new_relic/language_support.rb +5 -0
- data/lib/new_relic/noticed_error.rb +5 -2
- data/lib/new_relic/rack/browser_monitoring.rb +1 -1
- data/lib/new_relic/version.rb +1 -1
- data/lib/tasks/bump_version.rake +1 -1
- data/lib/tasks/config.rake +3 -2
- data/lib/tasks/helpers/config.html.erb +93 -0
- data/lib/tasks/helpers/format.rb +11 -7
- data/lib/tasks/helpers/version_bump.rb +2 -2
- data/lib/tasks/newrelicyml.rake +1 -1
- data/newrelic.yml +11 -0
- data/newrelic_rpm.gemspec +8 -5
- data/test/agent_helper.rb +1027 -0
- metadata +26 -8
- data/lib/tasks/helpers/removers.rb +0 -33
- data/lib/tasks/multiverse.rake +0 -6
- data/lib/tasks/multiverse.rb +0 -76
@@ -31,11 +31,12 @@ module NewRelic
|
|
31
31
|
RAKE_PREFIX = "#{OTHER_TRANSACTION_PREFIX}Rake/"
|
32
32
|
MESSAGE_PREFIX = "#{OTHER_TRANSACTION_PREFIX}Message/"
|
33
33
|
RACK_PREFIX = "#{CONTROLLER_PREFIX}Rack/"
|
34
|
+
RODA_PREFIX = "#{CONTROLLER_PREFIX}Roda/"
|
34
35
|
SINATRA_PREFIX = "#{CONTROLLER_PREFIX}Sinatra/"
|
35
36
|
GRAPE_PREFIX = "#{CONTROLLER_PREFIX}Grape/"
|
36
37
|
ACTION_CABLE_PREFIX = "#{CONTROLLER_PREFIX}ActionCable/"
|
37
38
|
|
38
|
-
WEB_TRANSACTION_CATEGORIES = [
|
39
|
+
WEB_TRANSACTION_CATEGORIES = %i[action_cable controller grape middleware rack roda sinatra web uri].freeze
|
39
40
|
|
40
41
|
MIDDLEWARE_SUMMARY_METRICS = ['Middleware/all'].freeze
|
41
42
|
WEB_SUMMARY_METRIC = 'HttpDispatcher'
|
@@ -289,7 +290,7 @@ module NewRelic
|
|
289
290
|
end
|
290
291
|
|
291
292
|
def sampled?
|
292
|
-
return unless Agent.config[:'distributed_tracing.enabled']
|
293
|
+
return false unless Agent.config[:'distributed_tracing.enabled']
|
293
294
|
|
294
295
|
if @sampled.nil?
|
295
296
|
@sampled = NewRelic::Agent.instance.adaptive_sampler.sampled?
|
@@ -545,8 +546,8 @@ module NewRelic
|
|
545
546
|
end
|
546
547
|
|
547
548
|
def user_defined_rules_ignore?
|
548
|
-
return unless request_path
|
549
|
-
return if (rules = NewRelic::Agent.config[:"rules.ignore_url_regexes"]).empty?
|
549
|
+
return false unless request_path
|
550
|
+
return false if (rules = NewRelic::Agent.config[:"rules.ignore_url_regexes"]).empty?
|
550
551
|
|
551
552
|
rules.any? do |rule|
|
552
553
|
request_path.match(rule)
|
@@ -75,14 +75,12 @@ module NewRelic
|
|
75
75
|
processed_headers = headers
|
76
76
|
raise if processed_headers.value?(:error)
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
Net::HTTP.
|
81
|
-
|
82
|
-
response = http.request(req)
|
83
|
-
end
|
84
|
-
response
|
78
|
+
response = nil
|
79
|
+
Net::HTTP.start(endpoint.host, endpoint.port, open_timeout: 1, read_timeout: 1) do |http|
|
80
|
+
req = Net::HTTP::Get.new(endpoint, processed_headers)
|
81
|
+
response = http.request(req)
|
85
82
|
end
|
83
|
+
response
|
86
84
|
rescue
|
87
85
|
NewRelic::Agent.logger.debug("#{vendor_name} environment not detected")
|
88
86
|
end
|
data/lib/new_relic/agent.rb
CHANGED
@@ -298,7 +298,7 @@ module NewRelic
|
|
298
298
|
|
299
299
|
# Set a callback proc for determining an error's error group name
|
300
300
|
#
|
301
|
-
# @param [Proc] the callback proc
|
301
|
+
# @param callback_proc [Proc] the callback proc
|
302
302
|
#
|
303
303
|
# Typically this method should be called only once to set a callback for
|
304
304
|
# use with all noticed errors. If it is called multiple times, each new
|
@@ -60,6 +60,7 @@ module NewRelic
|
|
60
60
|
extra = []
|
61
61
|
options = ARGV.options do |opts|
|
62
62
|
script_name = File.basename($0)
|
63
|
+
# TODO: MAJOR VERSION - remove newrelic_cmd, deprecated since version 2.13
|
63
64
|
if /newrelic_cmd$/.match?(script_name)
|
64
65
|
$stdout.puts "warning: the 'newrelic_cmd' script has been renamed 'newrelic'"
|
65
66
|
script_name = 'newrelic'
|
@@ -49,19 +49,13 @@ module NewRelic
|
|
49
49
|
# maybe it is already loaded by some external system
|
50
50
|
# i.e. rpm_contrib or user extensions?
|
51
51
|
end
|
52
|
-
NewRelic::Control::Frameworks.const_get(camelize(framework.to_s))
|
52
|
+
NewRelic::Control::Frameworks.const_get(NewRelic::LanguageSupport.camelize(framework.to_s))
|
53
53
|
end
|
54
54
|
|
55
55
|
# The root directory for the plugin or gem
|
56
56
|
def newrelic_root
|
57
57
|
File.expand_path(File.join('..', '..', '..', '..'), __FILE__)
|
58
58
|
end
|
59
|
-
|
60
|
-
def camelize(snake_case_name)
|
61
|
-
snake_case_name.gsub(/(\_|^)[a-z]/) do |substring|
|
62
|
-
substring[-1].capitalize!
|
63
|
-
end
|
64
|
-
end
|
65
59
|
end
|
66
60
|
extend ClassMethods
|
67
61
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file is distributed under New Relic's license terms.
|
2
|
+
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
require 'new_relic/control/frameworks/ruby'
|
6
|
+
module NewRelic
|
7
|
+
class Control
|
8
|
+
module Frameworks
|
9
|
+
# Contains basic control logic for Roda
|
10
|
+
class Roda < NewRelic::Control::Frameworks::Ruby
|
11
|
+
protected
|
12
|
+
|
13
|
+
def install_shim
|
14
|
+
super
|
15
|
+
::Roda.class_eval { include NewRelic::Agent::Instrumentation::ControllerInstrumentation::Shim }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -78,6 +78,11 @@ module NewRelic
|
|
78
78
|
camelized.split(/\-|\_/).map(&:capitalize).join
|
79
79
|
end
|
80
80
|
|
81
|
+
def camelize_with_first_letter_downcased(string)
|
82
|
+
camelized = camelize(string)
|
83
|
+
camelized[0].downcase.concat(camelized[1..-1])
|
84
|
+
end
|
85
|
+
|
81
86
|
def bundled_gem?(gem_name)
|
82
87
|
defined?(Bundler) && Bundler.rubygems.all_specs.map(&:name).include?(gem_name)
|
83
88
|
rescue => e
|
@@ -13,7 +13,7 @@ class NewRelic::NoticedError
|
|
13
13
|
attr_accessor :path, :timestamp, :message, :exception_class_name,
|
14
14
|
:request_uri, :request_port, :file_name, :line_number,
|
15
15
|
:stack_trace, :attributes_from_notice_error, :attributes,
|
16
|
-
:expected
|
16
|
+
:expected, :transaction_id
|
17
17
|
|
18
18
|
attr_reader :error_group, :exception_id, :is_internal
|
19
19
|
|
@@ -45,6 +45,7 @@ class NewRelic::NoticedError
|
|
45
45
|
@is_internal = (exception.class < NewRelic::Agent::InternalAgentError)
|
46
46
|
|
47
47
|
extract_class_name_and_message_from(exception)
|
48
|
+
@transaction_id = NewRelic::Agent::Tracer&.current_transaction&.guid
|
48
49
|
|
49
50
|
# clamp long messages to 4k so that we don't send a lot of
|
50
51
|
# overhead across the wire
|
@@ -79,11 +80,13 @@ class NewRelic::NoticedError
|
|
79
80
|
include NewRelic::Coerce
|
80
81
|
|
81
82
|
def to_collector_array(encoder = nil)
|
82
|
-
[NewRelic::Helper.time_to_millis(timestamp),
|
83
|
+
arr = [NewRelic::Helper.time_to_millis(timestamp),
|
83
84
|
string(path),
|
84
85
|
string(message),
|
85
86
|
string(exception_class_name),
|
86
87
|
processed_attributes]
|
88
|
+
arr << @transaction_id if @transaction_id
|
89
|
+
arr
|
87
90
|
end
|
88
91
|
|
89
92
|
# Note that we process attributes lazily and store the result. This is because
|
@@ -143,7 +143,7 @@ module NewRelic
|
|
143
143
|
end
|
144
144
|
|
145
145
|
# Per "The Response > The Body" section of Rack spec, we should close
|
146
|
-
# if our response is able.
|
146
|
+
# if our response is able. https://github.com/rack/rack/blob/main/SPEC.rdoc
|
147
147
|
def close_old_response(response)
|
148
148
|
response.close if response.respond_to?(:close)
|
149
149
|
end
|
data/lib/new_relic/version.rb
CHANGED
data/lib/tasks/bump_version.rake
CHANGED
data/lib/tasks/config.rake
CHANGED
@@ -21,12 +21,13 @@ namespace :newrelic do
|
|
21
21
|
'transaction_tracer' => 'The [transaction traces](/docs/apm/traces/transaction-traces/transaction-traces) feature collects detailed information from a selection of transactions, including a summary of the calling sequence, a breakdown of time spent, and a list of SQL queries and their query plans (on mysql and postgresql). Available features depend on your New Relic subscription level.',
|
22
22
|
'error_collector' => "The agent collects and reports all uncaught exceptions by default. These configuration options allow you to customize the error collection.\n\nFor information on ignored and expected errors, [see this page on Error Analytics in APM](/docs/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected/). To set expected errors via the `NewRelic::Agent.notice_error` Ruby method, [consult the Ruby Agent API](/docs/agents/ruby-agent/api-guides/sending-handled-errors-new-relic/).",
|
23
23
|
'browser_monitoring' => "The browser monitoring [page load timing](/docs/browser/new-relic-browser/page-load-timing/page-load-timing-process) feature (sometimes referred to as real user monitoring or RUM) gives you insight into the performance real users are experiencing with your website. This is accomplished by measuring the time it takes for your users' browsers to download and render your web pages by injecting a small amount of JavaScript code into the header and footer of each page.",
|
24
|
+
'application_logging' => "The Ruby agent supports [APM logs in context](/docs/apm/new-relic-apm/getting-started/get-started-logs-context). For some tips on configuring logs for the Ruby agent, see [Configure Ruby logs in context](/docs/logs/logs-context/configure-logs-context-ruby).\n\nAvailable logging-related config options include:",
|
24
25
|
'analytics_events' => '[New Relic dashboards](/docs/query-your-data/explore-query-data/dashboards/introduction-new-relic-one-dashboards) is a resource to gather and visualize data about your software and what it says about your business. With it you can quickly and easily create real-time dashboards to get immediate answers about end-user experiences, clickstreams, mobile activities, and server transactions.'
|
25
26
|
}
|
26
27
|
|
27
28
|
NAME_OVERRIDES = {
|
28
|
-
'slow_sql' => 'Slow SQL',
|
29
|
-
'custom_insights_events' => 'Custom Events'
|
29
|
+
'slow_sql' => 'Slow SQL [#slow-sql]',
|
30
|
+
'custom_insights_events' => 'Custom Events [#custom-events]'
|
30
31
|
}
|
31
32
|
|
32
33
|
desc 'Describe available New Relic configuration settings'
|
@@ -1,3 +1,96 @@
|
|
1
|
+
---
|
2
|
+
title: Ruby agent configuration
|
3
|
+
tags:
|
4
|
+
- Agents
|
5
|
+
- Ruby agent
|
6
|
+
- Configuration
|
7
|
+
metaDescription: 'APM for Ruby: how to configure the Ruby agent, including editing the config file and setting environment variables.'
|
8
|
+
redirects:
|
9
|
+
- /docs/agents/ruby-agent/configuration/ruby-agent-configuration
|
10
|
+
- /docs/ruby/ruby-agent-configuration
|
11
|
+
- /docs/agents/ruby-agent/installation-and-configuration/ruby-agent-configuration
|
12
|
+
- /docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
|
13
|
+
---
|
14
|
+
|
15
|
+
<CONTRIBUTOR_NOTE>
|
16
|
+
This file is automatically generated from values defined in `lib/new_relic/agent/configuration/default_source.rb`.
|
17
|
+
All changes should be made directly to `default_source.rb.`
|
18
|
+
Submit PRs or raise issues at: https://github.com/newrelic/newrelic-ruby-agent
|
19
|
+
</CONTRIBUTOR_NOTE>
|
20
|
+
|
21
|
+
You can configure the New Relic Ruby agent with settings in a configuration file, environment variables, or programmatically with server-side configuration. This document summarizes the configuration options available for the Ruby agent.
|
22
|
+
|
23
|
+
If the default value for a configuration option is `(Dynamic)`, this means the Ruby agent calculates the default at runtime. The value for the config setting defaults to the value of another setting as appropriate.
|
24
|
+
|
25
|
+
## Configuration methods and precedence [#Options]
|
26
|
+
|
27
|
+
The primary (default) method to configure the Ruby agent is via the configuration file (`newrelic.yml`) in the `config` subdirectory. To set configuration values using environment variables:
|
28
|
+
|
29
|
+
1. Add the prefix `NEW_RELIC_` to the setting's name.
|
30
|
+
2. Replace any periods `.` with underscores `_`.
|
31
|
+
|
32
|
+
You can also configure a few values in the UI via [server-side configuration](/docs/agents/manage-apm-agents/configuration/server-side-agent-configuration).
|
33
|
+
|
34
|
+
The Ruby agent follows this order of precedence for configuration:
|
35
|
+
|
36
|
+
1. Environment variables
|
37
|
+
2. Server-side configuration
|
38
|
+
3. Configuration file (`newrelic.yml`)
|
39
|
+
4. Default configuration settings
|
40
|
+
|
41
|
+
In other words, environment variables override all other configuration settings and info, server-side configuration overrides the configuration file and default config settings, and so on.
|
42
|
+
|
43
|
+
## View and edit config file options [#Edit]
|
44
|
+
|
45
|
+
The Ruby agent's `newrelic.yml` is a standard YAML configuration file. It typically includes a `Defaults` section at the top, plus sections below for each application environment; for example, `Development`, `Testing`, and `Production`.
|
46
|
+
|
47
|
+
The Ruby agent determines which section of the `newrelic.yml` config file to read from by looking at certain environment variables to derive the application's environment. This can be useful, for example, when you want to use `info` for the `log_level` config setting in your production environment, and you want more verbose `log_level` config settings (such as `debug` in your development environment.
|
48
|
+
|
49
|
+
Here is an example `newrelic.yml` config file:
|
50
|
+
|
51
|
+
```yaml
|
52
|
+
common: &default_settings
|
53
|
+
license_key: 'YOUR_LICENSE_KEY'
|
54
|
+
app_name: 'My Application Name'
|
55
|
+
production:
|
56
|
+
<<: *default_settings
|
57
|
+
log_level: info
|
58
|
+
development:
|
59
|
+
<<: *default_settings
|
60
|
+
log_level: debug
|
61
|
+
```
|
62
|
+
|
63
|
+
For non-Rails apps, the Ruby agent looks for the following environment variables, in this order, to determine the application environment:
|
64
|
+
|
65
|
+
1. `NEW_RELIC_ENV`
|
66
|
+
2. `RUBY_ENV`
|
67
|
+
3. `RAILS_ENV`
|
68
|
+
4. `APP_ENV`
|
69
|
+
5. `RACK_ENV`
|
70
|
+
|
71
|
+
If the Ruby agent does not detect values for any of those environment variables, it will default the application environment to `development` and read from the `development` section of the `newrelic.yml` config file.
|
72
|
+
|
73
|
+
When running the Ruby agent in a Rails app, the agent first looks for the `NEW_RELIC_ENV` environment variable to determine the application environment and which section of the `newrelic.yml` to use. If `NEW_RELIC_ENV` is not present, the agent uses the Rails environment (`RAILS_ENV` or `RAILS.env`, depending on the version of Rails) .
|
74
|
+
|
75
|
+
When you edit the config file, be sure to:
|
76
|
+
|
77
|
+
* Indent only with two spaces.
|
78
|
+
* Indent only where relevant, in stanzas such as **`error_collector`**.
|
79
|
+
|
80
|
+
If you do not indent correctly, the agent may throw an `Unable to parse configuration file` error on startup.
|
81
|
+
|
82
|
+
To view the most current list of available Ruby agent configuration options, use the `rake newrelic:config:docs` command. This document describes the most common options.
|
83
|
+
|
84
|
+
## Update the config file [#Updates]
|
85
|
+
|
86
|
+
This documentation applies to the Ruby agent's latest release. For details on earlier versions, refer to the comments in `newrelic.yml` itself.
|
87
|
+
|
88
|
+
To update `newrelic.yml` file after a new release, use the template in the base directory of the agent gem. When you update to new gem versions, examine or diff `config/newrelic.yml` and `newrelic.yml` in the [installation directory](/docs/agents/manage-apm-agents/troubleshooting/find-agent-root-directory#ruby-agent) to take advantage of new configuration options.
|
89
|
+
|
90
|
+
<Callout variant="important">
|
91
|
+
Updating the gem does not automatically update `config/newrelic.yml`.
|
92
|
+
</Callout>
|
93
|
+
|
1
94
|
<% sections.each do |(section_key, section_name, section_description, configs)| %>
|
2
95
|
## <%=section_name%>
|
3
96
|
|
data/lib/tasks/helpers/format.rb
CHANGED
@@ -3,16 +3,19 @@
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
5
|
module Format
|
6
|
-
|
7
|
-
config_hash = build_config_hash
|
8
|
-
sections = flatten_config_hash(config_hash)
|
6
|
+
DEFAULT_CONFIG_PATH = 'ruby-agent-configuration.mdx'
|
9
7
|
|
10
|
-
|
11
|
-
|
8
|
+
def output(format)
|
9
|
+
result = build_erb(format).result(binding).split("\n").map(&:rstrip).join("\n").gsub('. ', '. ')
|
10
|
+
File.write(DEFAULT_CONFIG_PATH, result)
|
12
11
|
end
|
13
12
|
|
14
13
|
private
|
15
14
|
|
15
|
+
def sections
|
16
|
+
@sections ||= flatten_config_hash(build_config_hash)
|
17
|
+
end
|
18
|
+
|
16
19
|
def add_data_to_sections(sections)
|
17
20
|
sections.each do |section|
|
18
21
|
section_key = section[0]
|
@@ -66,7 +69,7 @@ module Format
|
|
66
69
|
|
67
70
|
def format_description(value)
|
68
71
|
description = ''
|
69
|
-
description += '
|
72
|
+
description += '**DEPRECATED** ' if value[:deprecated]
|
70
73
|
description += value[:description]
|
71
74
|
description
|
72
75
|
end
|
@@ -81,9 +84,10 @@ module Format
|
|
81
84
|
name = NAME_OVERRIDES[key]
|
82
85
|
return name if name
|
83
86
|
|
84
|
-
key.split('_')
|
87
|
+
title = key.split('_')
|
85
88
|
.each { |fragment| fragment[0] = fragment[0].upcase }
|
86
89
|
.join(' ')
|
90
|
+
"#{title} [##{key.tr('_', '-')}]"
|
87
91
|
end
|
88
92
|
|
89
93
|
def format_sections(key, value)
|
@@ -55,8 +55,8 @@ module VersionBump
|
|
55
55
|
# Replace dev with version number in changelog
|
56
56
|
def self.update_changelog(version)
|
57
57
|
file = read_file('CHANGELOG.md')
|
58
|
-
file.gsub!(
|
59
|
-
file.gsub!(
|
58
|
+
file.gsub!('## dev', "## v#{version}")
|
59
|
+
file.gsub!('Version <dev>', "Version #{version}")
|
60
60
|
write_file('CHANGELOG.md', file)
|
61
61
|
end
|
62
62
|
end
|
data/lib/tasks/newrelicyml.rake
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
|
-
require_relative '
|
5
|
+
require_relative 'helpers/newrelicyml'
|
6
6
|
|
7
7
|
namespace :newrelic do
|
8
8
|
desc 'Update newrelic.yml with latest config options from default_source.rb'
|
data/newrelic.yml
CHANGED
@@ -33,6 +33,9 @@ common: &default_settings
|
|
33
33
|
# - a.third.event
|
34
34
|
# active_support_custom_events_names: []
|
35
35
|
|
36
|
+
# If true, enables capture of all HTTP request headers for all destinations.
|
37
|
+
# allow_all_headers: false
|
38
|
+
|
36
39
|
# Your New Relic userKey. Required when using the New Relic REST API v2 to record
|
37
40
|
# deployments using the newrelic deployments command.
|
38
41
|
# api_key: ""
|
@@ -222,6 +225,10 @@ common: &default_settings
|
|
222
225
|
# (regardless of whether they are installed via Rack::Builder or Rails).
|
223
226
|
# disable_middleware_instrumentation: false
|
224
227
|
|
228
|
+
# If true, disables agent middleware for Roda. This middleware is responsible for
|
229
|
+
# advanced feature support such as page load timing and error collection.
|
230
|
+
# disable_roda_auto_middleware: false
|
231
|
+
|
225
232
|
# If true, disables the collection of sampler metrics. Sampler metrics are metrics
|
226
233
|
# that are not event-based (such as CPU time or memory usage).
|
227
234
|
# disable_samplers: false
|
@@ -479,6 +486,10 @@ common: &default_settings
|
|
479
486
|
# prepend, chain, disabled.
|
480
487
|
# instrumentation.resque: auto
|
481
488
|
|
489
|
+
# Controls auto-instrumentation of Roda at start up. May be one of: auto, prepend,
|
490
|
+
# chain, disabled.
|
491
|
+
# instrumentation.roda: auto
|
492
|
+
|
482
493
|
# Controls auto-instrumentation of Sinatra at start up. May be one of: auto,
|
483
494
|
# prepend, chain, disabled.
|
484
495
|
# instrumentation.sinatra: auto
|
data/newrelic_rpm.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
https://github.com/newrelic/newrelic-ruby-agent/
|
22
22
|
EOS
|
23
23
|
s.email = 'support@newrelic.com'
|
24
|
+
# TODO: MAJOR VERSION - remove newrelic_cmd, deprecated since version 2.13
|
24
25
|
s.executables = %w[newrelic_cmd newrelic nrdebug]
|
25
26
|
s.extra_rdoc_files = [
|
26
27
|
'CHANGELOG.md',
|
@@ -38,13 +39,14 @@ Gem::Specification.new do |s|
|
|
38
39
|
'homepage_uri' => 'https://newrelic.com/ruby'
|
39
40
|
}
|
40
41
|
|
41
|
-
reject_list = File.read('
|
42
|
+
reject_list = File.read(File.expand_path('../.build_ignore', __FILE__)).split("\n")
|
42
43
|
file_list = `git ls-files -z`.split("\x0").reject { |f| reject_list.any? { |rf| f.start_with?(rf) } }
|
43
|
-
|
44
|
-
|
44
|
+
# test/agent_helper.rb is a requirement for the NewRelic::Agent.require_test_helper public API
|
45
|
+
test_helper_path = 'test/agent_helper.rb'
|
46
|
+
file_list << test_helper_path
|
45
47
|
s.files = file_list
|
46
48
|
|
47
|
-
s.homepage = 'https://github.com/newrelic/
|
49
|
+
s.homepage = 'https://github.com/newrelic/newrelic-ruby-agent'
|
48
50
|
s.require_paths = ['lib']
|
49
51
|
s.summary = 'New Relic Ruby Agent'
|
50
52
|
s.add_development_dependency 'bundler'
|
@@ -54,9 +56,10 @@ Gem::Specification.new do |s|
|
|
54
56
|
s.add_development_dependency 'minitest-stub-const', '0.6'
|
55
57
|
s.add_development_dependency 'mocha', '~> 1.16'
|
56
58
|
s.add_development_dependency 'pry' unless ENV['CI']
|
59
|
+
s.add_development_dependency 'rack'
|
57
60
|
s.add_development_dependency 'rake', '12.3.3'
|
58
61
|
|
59
|
-
s.add_development_dependency 'rubocop', '1.
|
62
|
+
s.add_development_dependency 'rubocop', '1.54' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
|
60
63
|
s.add_development_dependency 'rubocop-ast', '1.28.1' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
|
61
64
|
s.add_development_dependency 'rubocop-minitest', '0.27.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
|
62
65
|
s.add_development_dependency 'rubocop-performance', '1.16.0' unless ENV['CI'] && RUBY_VERSION < '3.0.0'
|