newrelic_rpm 8.5.0 → 8.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -3
- data/.yardopts +1 -0
- data/CHANGELOG.md +127 -1
- data/CONTRIBUTING.md +1 -1
- data/LICENSE +0 -6
- data/README.md +17 -19
- data/Rakefile +26 -21
- data/THIRD_PARTY_NOTICES.md +14 -199
- data/docker-compose.yml +1 -1
- data/lib/new_relic/agent/agent.rb +26 -2
- data/lib/new_relic/agent/agent_logger.rb +7 -0
- data/lib/new_relic/agent/audit_logger.rb +4 -0
- data/lib/new_relic/agent/autostart.rb +13 -10
- data/lib/new_relic/agent/configuration/default_source.rb +217 -50
- data/lib/new_relic/agent/configuration/environment_source.rb +2 -0
- data/lib/new_relic/agent/configuration/event_harvest_config.rb +4 -2
- data/lib/new_relic/agent/configuration/server_source.rb +1 -0
- data/lib/new_relic/agent/database.rb +5 -5
- data/lib/new_relic/agent/datastores/metric_helper.rb +3 -1
- data/lib/new_relic/agent/hostname.rb +16 -10
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +23 -20
- data/lib/new_relic/agent/instrumentation/active_job.rb +9 -2
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +14 -0
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +22 -6
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +16 -7
- data/lib/new_relic/agent/instrumentation/active_support_logger/chain.rb +23 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +20 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb +12 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger.rb +24 -0
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +10 -0
- data/lib/new_relic/agent/instrumentation/authlogic.rb +10 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +9 -4
- data/lib/new_relic/agent/instrumentation/curb/chain.rb +1 -1
- data/lib/new_relic/agent/instrumentation/curb/prepend.rb +1 -1
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +12 -0
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +19 -0
- data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +18 -18
- data/lib/new_relic/agent/instrumentation/logger.rb +4 -3
- data/lib/new_relic/agent/instrumentation/rack/helpers.rb +2 -0
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +11 -0
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +15 -0
- data/lib/new_relic/agent/instrumentation/sinatra.rb +21 -11
- data/lib/new_relic/agent/instrumentation/sunspot.rb +10 -0
- data/lib/new_relic/agent/instrumentation/thread/chain.rb +24 -0
- data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +27 -0
- data/lib/new_relic/agent/instrumentation/thread/prepend.rb +22 -0
- data/lib/new_relic/agent/instrumentation/thread.rb +20 -0
- data/lib/new_relic/agent/linking_metadata.rb +45 -0
- data/lib/new_relic/agent/local_log_decorator.rb +37 -0
- data/lib/new_relic/agent/log_event_aggregator.rb +234 -0
- data/lib/new_relic/agent/log_priority.rb +20 -0
- data/lib/new_relic/agent/method_tracer.rb +9 -4
- data/lib/new_relic/agent/method_tracer_helpers.rb +80 -0
- data/lib/new_relic/agent/new_relic_service.rb +27 -23
- data/lib/new_relic/agent/pipe_service.rb +5 -2
- data/lib/new_relic/agent/samplers/memory_sampler.rb +6 -1
- data/lib/new_relic/agent/span_event_primitive.rb +9 -6
- data/lib/new_relic/agent/stats.rb +48 -23
- data/lib/new_relic/agent/tracer.rb +14 -1
- data/lib/new_relic/agent/transaction/abstract_segment.rb +29 -1
- data/lib/new_relic/agent/transaction/tracing.rb +8 -3
- data/lib/new_relic/agent/transaction.rb +47 -11
- data/lib/new_relic/agent/transaction_error_primitive.rb +2 -0
- data/lib/new_relic/agent/transaction_metrics.rb +5 -4
- data/lib/new_relic/agent/vm/mri_vm.rb +13 -1
- data/lib/new_relic/agent.rb +6 -14
- data/lib/new_relic/control/instrumentation.rb +31 -0
- data/lib/new_relic/dependency_detection.rb +1 -1
- data/lib/new_relic/helper.rb +40 -0
- data/lib/new_relic/language_support.rb +17 -0
- data/lib/new_relic/local_environment.rb +2 -0
- data/lib/new_relic/supportability_helper.rb +1 -0
- data/lib/new_relic/traced_thread.rb +35 -0
- data/lib/new_relic/version.rb +1 -1
- data/lib/tasks/config.rake +13 -5
- data/newrelic.yml +34 -4
- data/newrelic_rpm.gemspec +2 -3
- data/test/agent_helper.rb +18 -4
- metadata +30 -17
- data/ROADMAP.md +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0eb3871a3ff66d8707dd01f40025d812d34904c02631d3a83af046bdbaeacdeb
|
4
|
+
data.tar.gz: 4e73dfe935bcd268ad0969a2c076e83313e75c3f3f0b711a7cba8c3af1327677
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07566af3aff20a1fe5951fb36e34086f665e8788ecb7edfd2664213e73877e7a1c58d4447f2dd85efb75beeda0ce2f484c513d4a7a09c01bcbe4c20e8a5cba1a
|
7
|
+
data.tar.gz: 577944d3712cdd9908d4a564346e7f4bd6fd5772fa00069d73acdb3d8a033621042c72346ddd4ca22585910f035116701f0f904dd8f40c8f0b1e9934bd787705
|
data/.rubocop.yml
CHANGED
@@ -819,9 +819,6 @@ Lint/UselessAccessModifier:
|
|
819
819
|
Lint/UselessAssignment:
|
820
820
|
Enabled: false
|
821
821
|
|
822
|
-
Lint/UselessElseWithoutRescue:
|
823
|
-
Enabled: true
|
824
|
-
|
825
822
|
Lint/UselessMethodDefinition:
|
826
823
|
Enabled: false
|
827
824
|
|
@@ -967,6 +964,9 @@ Performance/CollectionLiteralInLoop:
|
|
967
964
|
Performance/CompareWithBlock:
|
968
965
|
Enabled: true
|
969
966
|
|
967
|
+
Performance/ConcurrentMonotonicTime:
|
968
|
+
Enabled: true
|
969
|
+
|
970
970
|
# Disabling for now
|
971
971
|
Performance/ConstantRegexp:
|
972
972
|
Enabled: false
|
@@ -1072,6 +1072,9 @@ Performance/Squeeze:
|
|
1072
1072
|
Performance/StartWith:
|
1073
1073
|
Enabled: false
|
1074
1074
|
|
1075
|
+
Performance/StringIdentifierArgument:
|
1076
|
+
Enabled: true
|
1077
|
+
|
1075
1078
|
Performance/StringInclude:
|
1076
1079
|
Enabled: false
|
1077
1080
|
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,131 @@
|
|
1
1
|
# New Relic Ruby Agent Release Notes #
|
2
2
|
|
3
|
+
## v8.8.0
|
4
|
+
|
5
|
+
* **Support Makara database adapters with ActiveRecord**
|
6
|
+
|
7
|
+
Thanks to a community submission from @lucasklaassen with [PR #1177](https://github.com/newrelic/newrelic-ruby-agent/pull/1177), the Ruby agent will now correctly work well with the [Makara gem](https://github.com/instacart/makara). Functionality such as SQL obfuscation should now work when Makara database adapters are used with Active Record.
|
8
|
+
|
9
|
+
* **Lowered the minimum payload size to compress**
|
10
|
+
|
11
|
+
Previously the Ruby agent used a particularly large payload size threshold of 64KiB that would need to be met before the agent would compress data en route to New Relic's collector. The original value stems from segfault issues that very old Rubies (< 2.2) used to encounter when compressing smaller payloads. This value has been lowered to 2KiB (2048 bytes), which should provide a more optimal balance between the CPU cycles spent on compression and the bandwidth savings gained from it.
|
12
|
+
|
13
|
+
* **Provide Code Level Metrics for New Relic CodeStream**
|
14
|
+
|
15
|
+
For Ruby on Rails applications and/or those with manually traced methods, the agent is now capable of reporting metrics with Ruby method-level granularity. When the new `code_level_metrics.enabled` configuration parameter is set to a `true` value, the agent will associate source-code-related metadata with the metrics for things such as Rails controller methods. Then, when the corresponding Ruby class file that defines the methods is loaded up in a [New Relic CodeStream](https://www.codestream.com/)-powered IDE, [the four golden signals](https://sre.google/sre-book/monitoring-distributed-systems/) for each method will be presented to the developer directly.
|
16
|
+
|
17
|
+
* **Supportability Metrics will always report uncompressed payload size**
|
18
|
+
|
19
|
+
New Relic's agent specifications call for Supportability Metrics to always reference the uncompressed payload byte size. Previously, the Ruby agent was calculating the byte size after compression. Furthermore, compression is only performed on payloads of a certain size. This means that sometimes the value could have represented a compressed size and sometimes an uncompressed one. Now the uncompressed value is always used, bringing consistency for comparing two instances of the same metric and alignment with the New Relic agent specifications.
|
20
|
+
|
21
|
+
|
22
|
+
## v8.7.0
|
23
|
+
|
24
|
+
* **APM logs-in-context log forwarding on by default**
|
25
|
+
|
26
|
+
Automatic application log forwarding is now enabled by default. This version of the agent will automatically send enriched application logs to New Relic. To learn more about about this feature see [here](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/get-started-logs-context/), and additional configuration options are available [here](https://docs.newrelic.com/docs/logs/logs-context/configure-logs-context-ruby). To learn about how to toggle log ingestion on or off by account see [here](https://docs.newrelic.com/docs/logs/logs-context/disable-automatic-logging).
|
27
|
+
|
28
|
+
* **Improved async support and Thread instrumentation**
|
29
|
+
|
30
|
+
Previously, the agent was not able to record events and metrics inside Threads created inside of an already running transaction. This release includes 2 new configuration options to support multithreaded applications to automatically instrument threads. A new configuration option,`instrumentation.thread.tracing` (disabled by default), has been introduced that, when enabled, will allow the agent to insert New Relic tracing inside of all Threads created by an application. To support applications that only want some threads instrumented by New Relic, a new class is available, `NewRelic::TracedThread`, that will create a thread that includes New Relic instrumentation, see our [API documentation](https://www.rubydoc.info/gems/newrelic_rpm/NewRelic) for more details.
|
31
|
+
|
32
|
+
New configuration options included in this release:
|
33
|
+
| Configuration name | Default | Behavior |
|
34
|
+
| ----------- | ----------- |----------- |
|
35
|
+
| `instrumentation.thread` | `auto` (enabled) | Allows the agent to correctly nest spans inside of an asyncronous transaction |
|
36
|
+
| `instrumentation.thread.tracing` | `false` (disabled) | Automatically add tracing to all Threads created in the application. This may be enabled by default in a future release. |
|
37
|
+
|
38
|
+
We'd like to thank @mikeantonelli for sharing a gist with us that provided our team with an entry point for this feature.
|
39
|
+
|
40
|
+
* **Deprecate support for Ruby 2.2**
|
41
|
+
|
42
|
+
Ruby 2.2 reached end of life on March 31, 2018. The agent has deprecated support for Ruby 2.2 and will make breaking changes for this version in its next major release.
|
43
|
+
|
44
|
+
* **Deprecate instrumentation versions with low adoption and/or versions over five years old**
|
45
|
+
|
46
|
+
This release deprecates the following instrumentation:
|
47
|
+
| Deprecated | Replacement |
|
48
|
+
| ----------- | ----------- |
|
49
|
+
| ActiveMerchant < 1.65.0 | ActiveMerchant >= 1.65.0 |
|
50
|
+
| Acts As Solr (all versions) | none |
|
51
|
+
| Authlogic (all versions) | none |
|
52
|
+
| Bunny < 2.7.0 | bunny >= 2.7.0 |
|
53
|
+
| Dalli < 3.2.1 | Dalli >= 3.2.1 |
|
54
|
+
| DataMapper (all versions) | none |
|
55
|
+
| Delayed Job < 4.1.0 | Delayed Job >= 4.1.0 |
|
56
|
+
| Excon < 0.56.0 | Excon >= 0.56.0 |
|
57
|
+
| Grape < 0.19.2 | Grape >= 0.19.2 |
|
58
|
+
| HTTPClient < 2.8.3 | HTTPClient 2.8.3 |
|
59
|
+
| HTTP.rb < 2.2.2 | HTTP.rb >= 2.2.2 |
|
60
|
+
| Mongo < 2.4.1 | Mongo >= 2.4.1 |
|
61
|
+
| Padrino < 0.15.0 | Padrino >= 0.15.0 |
|
62
|
+
| Passenger < 5.1.3 | Passenger >= 5.1.3 |
|
63
|
+
| Puma < 3.9.0 | Puma >= 3.9.0 |
|
64
|
+
| Rack < 1.6.8 | Rack >= 1.6.8 |
|
65
|
+
| Rails 3.2.x | Rails >= 4.x |
|
66
|
+
| Rainbows (all versions) | none |
|
67
|
+
| Sequel < 4.45.0 | Sequel >= 4.45.0 |
|
68
|
+
| Sidekiq < 5.0.0 | Sidekiq >= 5.0.0 |
|
69
|
+
| Sinatra < 2.0.0 | Sinatra >= 2.0.0 |
|
70
|
+
| Sunspot (all versions) | none |
|
71
|
+
| Typhoeus < 1.3.0 | Typhoeus >= 1.3.0 |
|
72
|
+
| Unicorn < 5.3.0 | Unicorn >= 5.3.0 |
|
73
|
+
|
74
|
+
For the gems with deprecated versions, we will no longer test those versions in our multiverse suite. They may, however, still be compatible with the agent. We will no longer fix bug reports for issues related to these gem versions.
|
75
|
+
|
76
|
+
* **Clarify documentation for `rake.tasks` configuration**
|
77
|
+
|
78
|
+
The `rake.tasks` description in the default `newrelic.yml` file and the [New Relic Ruby Agent Configuration docs](https://docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration#rake-tasks) have been updated to clarify its behavior and usage. The documentation now reads:
|
79
|
+
|
80
|
+
> Specify an array of Rake tasks to automatically instrument. This configuration option converts the Array to a RegEx list. If you'd like to allow all tasks by default, use `rake.tasks: [.+]`. Rake tasks will not be instrumented unless they're added to this list. For more information, visit the (New Relic Rake Instrumentation docs)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation].
|
81
|
+
|
82
|
+
We thank @robotfelix for suggesting these changes.
|
83
|
+
|
84
|
+
* **Internally leverage `Object.const_get` and `Object.const_defined?`**
|
85
|
+
|
86
|
+
When dynamically checking for or obtaining a handle to a class constant from a string, leverage the `Object` class's built in methods wherever possible to enjoy simpler, more performant operations. All JRubies and CRubies v2.5 and below need a bit of assistance beyond what `Object` can provide given that those Rubies may yield an unwanted constant from a different namespace than the one that was specified. But for all other Rubies and even for those Rubies in contexts where we can 100% trust the string value coming in, leverage the `Object` class's methods and reap the benefits.
|
87
|
+
|
88
|
+
* **Enable Environment Variables setting Array configurations to be converted to Arrays**
|
89
|
+
|
90
|
+
Prior to this change, when comma-separated lists were passed as environment variables, an error would be emitted to the `newrelic_agent.log` and a String would be set as the value. Now, Arrays will be accurately coerced.
|
91
|
+
|
92
|
+
* **Bugfix: Allow TransactionEvents to be sampled at the expected rate**
|
93
|
+
|
94
|
+
The `transaction_events.max_samples_stored` capacity value within the TransactionEventAggregator did not match up with its expected harvest cycle interval, causing TransactionEvents to be over-sampled. This bugfix builds upon the updates made in [#952](https://github.com/newrelic/newrelic-ruby-agent/pull/952) so that the interval and capacity behave as expected for the renamed `transaction_events*` configuration options.
|
95
|
+
|
96
|
+
* **Bugfix: Error events missing attributes when created outside of a transaction**
|
97
|
+
|
98
|
+
Previously the agent was not assigning a priority to error events that were created by calling notice_error outside the scope of a transaction. This caused issues with sampling when the error event buffer was full, resulting in a `NoMethodError: undefined method '<' for nil:NilClass` in the newrelic_agent.log. This bugfix ensures that a priority is always assigned on error events so that the agent will be able to sample these error events correctly. Thank you to @olleolleolle for bringing this issue to our attention.
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
## v8.6.0
|
103
|
+
|
104
|
+
* **Telemetry-in-Context: Automatic Application Logs, a quick way to view logs no matter where you are in the platform**
|
105
|
+
|
106
|
+
- Adds support for forwarding application logs to New Relic. This automatically sends application logs that have been enriched to power Telemetry-in-Context. This is disabled by default in this release. This may be on by default in a future release.
|
107
|
+
- Adds support for enriching application logs written to disk or standard out. This can be used with another log forwarder to power Telemetry-in-Context if in-agent log forwarding is not desired. We recommend enabling either log forwarding or local log decorating, but not both features. This is disabled by default in this release.
|
108
|
+
- Improves speed and Resque support for logging metrics which shows the rate of log message by severity in the Logs chart in the APM Summary view. This is enabled by default in this release.
|
109
|
+
|
110
|
+
To learn more about Telemetry-in-Context and the configuration options please see the documentation [here](https://docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/).
|
111
|
+
|
112
|
+
* **Improve the usage of the 'hostname' executable and other executables**
|
113
|
+
|
114
|
+
In all places where a call to an executable binary is made (currently this is done only for the 'hostname' and 'uname' binaries), leverage a new helper method when making the call. This new helper will a) not attempt to execute the binary if it cannot be found, and b) prevent STDERR/STDOUT content from appearing anywhere except New Relic's own logs if the New Relic logger is set to the 'debug' level. When calling 'hostname', fall back to `Socket.gethostname` if the 'hostname' binary cannot be found. When calling 'uname', fall back on using a value of 'unknown' if the 'uname' command fails. Many thanks to @metaskills and @brcarp for letting us know that Ruby AWS Lambda functions can't invoke 'hostname' and for providing ideas and feedback with [Issue #697](https://github.com/newrelic/newrelic-ruby-agent/issues/697).
|
115
|
+
|
116
|
+
* **Documentation: remove confusing duplicate RUM entry from newrelic.yml**
|
117
|
+
|
118
|
+
The `browser_monitoring.auto_instrument` configuration option to enable web page load timing (RUM) was confusingly listed twice in the newrelic.yml config file. This option is enabled by default. The newrelic.yml file has been updated to list the option only once. Many thanks to @robotfelix for bringing this to our attention with [Issue #955](https://github.com/newrelic/newrelic-ruby-agent/issues/955).
|
119
|
+
|
120
|
+
* **Bugfix: fix unit test failures when New Relic environment variables are present**
|
121
|
+
|
122
|
+
Previously, unit tests would fail with unexpected invocation errors when `NEW_RELIC_LICENSE_KEY` and `NEW_RELIC_HOST` environment variables were present. Now, tests will discard these environment variables before running.
|
123
|
+
|
124
|
+
* **Bugfix: Curb - satify method_with_tracing's verb argument requirement**
|
125
|
+
|
126
|
+
When Curb instrumentation is used (either via prepend or chain), be sure to always pass the verb argument over to `method_with_tracing` which requires it. Thank you to @knarewski for bringing this issue to our attention, for providing a means of reproducing an error, and for providing a fix. That fix has been replicated by the agent team with permission. See [Issue 1033](https://github.com/newrelic/newrelic-ruby-agent/issues/1033) for more details.
|
127
|
+
|
128
|
+
|
3
129
|
## v8.5.0
|
4
130
|
|
5
131
|
* **AWS: Support IMDSv2 by using a token with metadata API calls**
|
@@ -564,7 +690,7 @@
|
|
564
690
|
## v6.12.0
|
565
691
|
|
566
692
|
* The New Relic Ruby Agent is now open source under the [Apache 2 license](LICENSE)
|
567
|
-
and you can now observe the
|
693
|
+
and you can now observe the [issues we're working on](https://github.com/orgs/newrelic/projects/17). See our [Contributing guide](https://github.com/newrelic/newrelic-ruby-agent/blob/main/CONTRIBUTING.md)
|
568
694
|
and [Code of Conduct](https://github.com/newrelic/.github/blob/master/CODE_OF_CONDUCT.md) for details on contributing!
|
569
695
|
|
570
696
|
* **Security: Updated all uses of Rake to >= 12.3.3**
|
data/CONTRIBUTING.md
CHANGED
@@ -128,7 +128,7 @@ This will run the unit tests in standalone mode. You can run against a specific
|
|
128
128
|
by passing the version name (which should match the name of a subdirectory in test/environments)
|
129
129
|
as an argument to the test:env rake task, like this:
|
130
130
|
|
131
|
-
bundle exec rake test:env[rails60]
|
131
|
+
bundle exec rake 'test:env[rails60]'
|
132
132
|
|
133
133
|
These tests are setup to run automatically in
|
134
134
|
[GitHub Actions](https://github.com/newrelic/newrelic-ruby-agent/actions) under several
|
data/LICENSE
CHANGED
@@ -175,10 +175,6 @@
|
|
175
175
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
177
177
|
|
178
|
-
Versions 6.12.0 and above for this project are licensed under
|
179
|
-
Apache 2.0. For prior versions of this project, please see the
|
180
|
-
LICENSE file in the root directory of that version for more information.
|
181
|
-
|
182
178
|
APPENDIX: How to apply the Apache License to your work.
|
183
179
|
|
184
180
|
To apply the Apache License to your work, attach the following
|
@@ -204,5 +200,3 @@
|
|
204
200
|
See the License for the specific language governing permissions and
|
205
201
|
limitations under the License.
|
206
202
|
|
207
|
-
|
208
|
-
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[![Community Plus
|
1
|
+
[![Blue banner - Community Plus: This code is currently maintained by New Relic engineering teams and delivered here in GitHub. See the README for troubleshooting and defect reporting instructions.](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Plus.png)](https://opensource.newrelic.com/oss-category/#community-plus)
|
2
2
|
|
3
3
|
# New Relic Ruby Agent
|
4
4
|
|
@@ -8,7 +8,7 @@ You can also extend the agent's performance monitoring to
|
|
8
8
|
[collect and analyze business data](https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/introduction-new-relic-ruby#business-data)
|
9
9
|
to help you improve the customer experience and make data-driven business decisions.
|
10
10
|
|
11
|
-
The New Relic Ruby
|
11
|
+
The New Relic Ruby agent is dual-purposed as either a Gem or a Rails plugin,
|
12
12
|
hosted on [github](https://github.com/newrelic/newrelic-ruby-agent).
|
13
13
|
|
14
14
|
[![Gem Version](https://badge.fury.io/rb/newrelic_rpm.svg)](https://badge.fury.io/rb/newrelic_rpm)
|
@@ -23,13 +23,13 @@ Environments" section below.
|
|
23
23
|
|
24
24
|
## Installing and Using
|
25
25
|
|
26
|
-
The latest released gem for the Ruby
|
26
|
+
The latest released gem for the Ruby agent can be found at [Rubygems.org](https://rubygems.org/gems/newrelic_rpm)
|
27
27
|
|
28
28
|
### Quick Start
|
29
29
|
|
30
30
|
#### With Bundler
|
31
31
|
|
32
|
-
For using with Bundler, add the Ruby
|
32
|
+
For using with Bundler, add the Ruby agent to your project's Gemfile.
|
33
33
|
|
34
34
|
```ruby
|
35
35
|
gem 'newrelic_rpm'
|
@@ -71,16 +71,18 @@ For complete documentation on installing the New Relic Ruby agent, see the follo
|
|
71
71
|
* [GAE Flexible Environment](https://docs.newrelic.com/docs/agents/ruby-agent/installation/install-new-relic-ruby-agent-gae-flexible-environment)
|
72
72
|
* [Pure Rack Apps](http://docs.newrelic.com/docs/ruby/rack-middlewares)
|
73
73
|
* [Ruby agent and Heroku](https://docs.newrelic.com/docs/agents/ruby-agent/installation/ruby-agent-heroku)
|
74
|
-
* [Background Jobs](https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs)
|
74
|
+
* [Background Jobs](https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/monitor-ruby-background-processes)
|
75
75
|
* [Uninstall the Ruby agent](https://docs.newrelic.com/docs/agents/ruby-agent/installation/uninstall-ruby-agent)
|
76
76
|
|
77
77
|
### Recording Deploys
|
78
78
|
|
79
|
-
The Ruby
|
80
|
-
tool or Capistrano recipes. For more information on these features see
|
79
|
+
The Ruby agent supports* recording deployments in New Relic via a command line
|
80
|
+
tool or Capistrano recipes. For more information on these features, see
|
81
81
|
[our deployment documentation](http://docs.newrelic.com/docs/ruby/recording-deployments-with-the-ruby-agent)
|
82
82
|
for more information.
|
83
83
|
|
84
|
+
*There is a [known issue](https://github.com/newrelic/newrelic-ruby-agent/issues/715) that prevents newly generated New Relic API keys from recording deploys.
|
85
|
+
|
84
86
|
## Support
|
85
87
|
|
86
88
|
Should you need assistance with New Relic products, you are in good hands with several support diagnostic tools and support channels.
|
@@ -103,17 +105,14 @@ If the issue has been confirmed as a bug or is a Feature request, please file a
|
|
103
105
|
|
104
106
|
At New Relic we take your privacy and the security of your information seriously, and are committed to protecting your information. We must emphasize the importance of not sharing personal data in public forums, and ask all users to scrub logs and diagnostic information for sensitive information, whether personal, proprietary, or otherwise.
|
105
107
|
|
106
|
-
We define “Personal Data” as any information relating to an identified or identifiable individual, including, for example, your name, phone number, post code or zip code, Device ID, IP address and email address.
|
108
|
+
We define “Personal Data” as any information relating to an identified or identifiable individual, including, for example, your name, phone number, post code or zip code, Device ID, IP address, and email address.
|
107
109
|
|
108
110
|
Please review [New Relic’s General Data Privacy Notice](https://newrelic.com/termsandconditions/privacy) for more information.
|
109
111
|
|
110
|
-
## Roadmap
|
111
|
-
See our [roadmap](https://github.com/newrelic/newrelic-ruby-agent/blob/main/ROADMAP.md), to learn more about our product vision, understand our plans, and provide us valuable feedback.
|
112
|
-
|
113
112
|
## Contributing
|
114
113
|
|
115
|
-
We encourage contributions to improve the New Relic Ruby agent! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.
|
116
|
-
If you have any questions, or to execute our corporate CLA
|
114
|
+
We encourage contributions to improve the New Relic Ruby agent! Keep in mind when you submit your pull request, you'll need to sign the Contributor License Agreement (CLA) via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.
|
115
|
+
If you have any questions, or to execute our corporate CLA (required if your contribution is on behalf of a company), please drop us an email at opensource@newrelic.com.
|
117
116
|
|
118
117
|
**A note about vulnerabilities**
|
119
118
|
|
@@ -128,13 +127,12 @@ the [New Relic Ruby agent](https://opensource.newrelic.com/projects/newrelic/new
|
|
128
127
|
|
129
128
|
## License
|
130
129
|
|
131
|
-
|
132
|
-
The New Relic Ruby agent also uses source code from third-party libraries. Full details on which libraries are used and the terms under which they are licensed can be found in the [THIRD_PARTY_NOTICES.md](https://github.com/newrelic/newrelic-ruby-agent/blob/main/THIRD_PARTY_NOTICES.md).
|
130
|
+
As of version 6.12 (released July 16, 2020), the New Relic Ruby agent is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for a copy of the license. For older agent versions, check the LICENSE file included with the source code.
|
133
131
|
|
134
|
-
|
132
|
+
The New Relic Ruby agent may use source code from third-party libraries. When used, these libraries will be outlined in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
|
135
133
|
|
136
|
-
Thank
|
134
|
+
## Thank You
|
137
135
|
|
138
|
-
|
136
|
+
Thank you,
|
139
137
|
|
140
|
-
New Relic
|
138
|
+
New Relic Ruby agent team
|
data/Rakefile
CHANGED
@@ -11,15 +11,6 @@ task :test => ['test:newrelic']
|
|
11
11
|
namespace :test do
|
12
12
|
desc "Run all tests"
|
13
13
|
task :all => %w[newrelic multiverse all_compatible_envs]
|
14
|
-
|
15
|
-
begin
|
16
|
-
require 'test_bisect'
|
17
|
-
TestBisect::BisectTask.new do |t|
|
18
|
-
t.test_task_name = 'test:newrelic'
|
19
|
-
end
|
20
|
-
rescue LoadError
|
21
|
-
end
|
22
|
-
|
23
14
|
agent_home = File.expand_path(File.dirname(__FILE__))
|
24
15
|
|
25
16
|
desc "Run agent performance tests"
|
@@ -65,7 +56,7 @@ task :record_build, [:build_number, :stage] do |t, args|
|
|
65
56
|
build_string = args.build_number
|
66
57
|
build_string << ".#{args.stage}" unless args.stage.nil? || args.stage.empty?
|
67
58
|
|
68
|
-
gitsha = File.
|
59
|
+
gitsha = File.exist?(".git") ? `git rev-parse HEAD` : "Unknown"
|
69
60
|
gitsha.chomp!
|
70
61
|
|
71
62
|
File.open("lib/new_relic/build.rb", "w") do |f|
|
@@ -116,24 +107,38 @@ task :update_ca_bundle do |t|
|
|
116
107
|
end
|
117
108
|
|
118
109
|
namespace :cross_agent_tests do
|
119
|
-
|
120
|
-
|
110
|
+
CROSS_AGENT_TESTS_UPSTREAM_PATH = File.expand_path(File.join('..', 'cross_agent_tests')).freeze
|
111
|
+
CROSS_AGENT_TESTS_LOCAL_PATH = File.expand_path(File.join('test', 'fixtures', 'cross_agent_tests')).freeze
|
112
|
+
|
113
|
+
def prompt_to_continue(command, destination = 'local')
|
114
|
+
puts "The following rsync command will be executed to update the #{destination} copy of the specs:"
|
115
|
+
puts
|
116
|
+
puts command
|
117
|
+
puts
|
118
|
+
puts "CAUTION: Any unsaved changes that exist within the #{destination} content will be OVERWRITTEN!"
|
119
|
+
if destination.eql?('local')
|
120
|
+
puts 'CAUTION 2: Before continuing, make sure your local repo is on the correct, synced branch!'
|
121
|
+
end
|
122
|
+
puts
|
123
|
+
print "Do you wish to continue? ('y' to continue, return to cancel) [n] "
|
124
|
+
continue = STDIN.gets.chomp
|
125
|
+
if continue.downcase.eql?('y')
|
126
|
+
system(command)
|
127
|
+
else
|
128
|
+
puts 'Cancelled'
|
129
|
+
end
|
130
|
+
end
|
121
131
|
|
122
|
-
# Note: before you pull, make sure your local repo is on the correct, synced branch!
|
123
132
|
desc 'Pull latest changes from cross_agent_tests repo'
|
124
133
|
task :pull do
|
125
|
-
|
126
|
-
|
127
|
-
puts cmd
|
128
|
-
system(cmd)
|
134
|
+
command = " rsync -av --exclude .git #{CROSS_AGENT_TESTS_UPSTREAM_PATH}/ #{CROSS_AGENT_TESTS_LOCAL_PATH}/"
|
135
|
+
prompt_to_continue(command)
|
129
136
|
end
|
130
137
|
|
131
138
|
desc 'Copy changes from embedded cross_agent_tests to official repo working copy'
|
132
139
|
task :push do
|
133
|
-
|
134
|
-
|
135
|
-
puts cmd
|
136
|
-
system(cmd)
|
140
|
+
command = "rsync -av #{CROSS_AGENT_TESTS_LOCAL_PATH}/ #{CROSS_AGENT_TESTS_UPSTREAM_PATH}/"
|
141
|
+
prompt_to_continue(command, 'remote (agent spec repo)')
|
137
142
|
end
|
138
143
|
end
|
139
144
|
|
data/THIRD_PARTY_NOTICES.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Third Party Notices
|
2
2
|
|
3
|
-
The New Relic Ruby
|
4
|
-
their own copyright notices and license terms.
|
5
|
-
below.
|
3
|
+
The New Relic Ruby agent may make use of source code from third party libraries
|
4
|
+
which carry their own copyright notices and license terms. Any such content will
|
5
|
+
be provided below.
|
6
6
|
|
7
7
|
In the event that a required notice is missing or incorrect, please notify us
|
8
8
|
by e-mailing [open-source@newrelic.com](mailto:open-source@newrelic.com).
|
@@ -11,203 +11,18 @@ For any licenses that require the disclosure of source
|
|
11
11
|
code, the source code can be found at:
|
12
12
|
[https://github.com/newrelic/newrelic-ruby-agent](https://github.com/newrelic/newrelic-ruby-agent).
|
13
13
|
|
14
|
-
## Content
|
15
14
|
|
16
|
-
|
15
|
+
## Current Notices and Terms
|
17
16
|
|
18
|
-
|
17
|
+
As of version 7.0 (released April 23, 2021), the New Relic Ruby agent does not
|
18
|
+
include any third party software with its distribution.
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
The Ruby agent team leverages a variety of open source third party software for
|
21
|
+
the development of the agent but not distributed with the agent. Some of these
|
22
|
+
software packages are referenced as development dependencies in the agent's
|
23
|
+
[newrelic_rpm.gemspec](newrelic_rpm.gemspec) file. We are grateful
|
24
|
+
to the maintainers and contributors for all of these packages.
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
ROOT CERTIFICATES TO YOU AS THE INDIVIDUAL, THE COMPANY, OR THE LEGAL ENTITY THAT
|
27
|
-
WILL BE UTILIZING THE ROOT CERTIFICATES (REFERENCED BELOW AS “YOU” OR “YOUR”)
|
28
|
-
ONLY ON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS OF THIS AGREEMENT
|
29
|
-
(“AGREEMENT”). READ THE TERMS AND CONDITIONS OF THIS AGREEMENT CAREFULLY
|
30
|
-
BEFORE USING THE ROOT CERTIFICATES. THIS IS A LEGAL AND ENFORCEABLE CONTRACT
|
31
|
-
BETWEEN YOU AND SYMANTEC. BY USING THE ROOT CERTIFICATES, YOU AGREE TO THE
|
32
|
-
TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS AND
|
33
|
-
CONDITIONS, MAKE NO FURTHER USE OF THE ROOT CERTIFICATES. UNLESS OTHERWISE
|
34
|
-
DEFINED HEREIN, CAPITALIZED TERMS WILL HAVE THE MEANING GIVEN IN THE “DEFINITIONS”
|
35
|
-
SECTION OF THIS AGREEMENT AND SUCH CAPITALIZED TERMS MAY BE USED IN THE
|
36
|
-
SINGULAR OR IN THE PLURAL, AS THE CONTEXT REQUIRES.
|
37
|
-
|
38
|
-
ROOT CERTIFICATE TERMS AND CONDITIONS
|
39
|
-
1. DEFINITIONS.
|
40
|
-
"Certificate" means an electronic file that, at least, states a name or identifies the issuing Certificate
|
41
|
-
Authority, identifies the subscriber, contains the subscriber's public key, identifies the Certificate's
|
42
|
-
operational period, contains a Certificate serial number, and contains a digital signature of the issuing
|
43
|
-
Certificate Authority.
|
44
|
-
“Certificate Authority” or “CA” means a person or entity authorized to issue, suspend, or revoke
|
45
|
-
Certificates.
|
46
|
-
“Intermediate CA” means a CA Certificate signed by a Root Certificate Intermediate that issues
|
47
|
-
Certificates either to end-entities or other Certificate Authorities, but not to both.
|
48
|
-
"Products" means all versions of Your product or service with which the Root Certificates are incorporated
|
49
|
-
(including successor products and services or any major or minor upgrades thereto).
|
50
|
-
"Root Certificate" means a self-signed Certificate issued by a top-level Certificate Authority to itself, which
|
51
|
-
includes such Certificate Authority's public key. The Root Certificates and Root Certificate files to be
|
52
|
-
provided by Company to Customer pursuant to this Agreement are available for download at
|
53
|
-
https://www.verisign.com/support/roots.html, https://www.thawte.com/roots/index.html or
|
54
|
-
https://www.geotrust.com/resources/rootcertificates/index.html.
|
55
|
-
2. LICENSE. During the term of this Agreement, Symantec grants You a royalty-free, non-exclusive, nontransferable license to (a) use the Root Certificate for the purposes of testing (without the right to modify);
|
56
|
-
(b) make copies of Root Certificates only in order to embed and incorporate them, unmodified and in full,
|
57
|
-
as roots in Your Products; (c) distribute the Root Certificates as embedded and incorporated in such
|
58
|
-
Products; and (d) use the relevant logos and trademarks of Symantec in Your marketing materials,
|
59
|
-
advertisements, product data sheets, product packaging and websites solely conjunction with the
|
60
|
-
distribution of the Root Certificates in accordance with Symantec’s published guidelines for such usage.
|
61
|
-
You shall not have the right to further distribute the Root Certificates other than as described herein
|
62
|
-
without an additional license grant, in a separate writing, from Symantec.
|
63
|
-
3. RESTRICTIONS. You may not: (a) modify or create any derivative works of Root Certificates; (b)
|
64
|
-
assign, sublicense, sell, rent, or lease Symantec's root keys or Root Certificates; (c) use such Root
|
65
|
-
Certificates except as expressly permitted under this Agreement; (d) remove or alter any trademark, logo,
|
66
|
-
copyright, or other proprietary notices, legends, symbols, or labels provided in the Root Certificates; or (e)
|
67
|
-
certify, or cause a third party to certify, the public key contained in the Root Certificates by issuing or
|
68
|
-
creating a Certificate containing such public key.
|
69
|
-
4. CUSTOMER’S OBLIGATIONS.
|
70
|
-
4.1. During the term of this Agreement, You shall use commercially reasonable efforts regularly check the
|
71
|
-
applicable Symantec URL for updates to the Root Certificates and update Root Certificates embedded
|
72
|
-
into Your Products with the most currently available Root Certificates, unmodified and in full, or as a patch
|
73
|
-
or update. If Symantec updates its Root Certificates,, You shall use commercially reasonable efforts to (i)
|
74
|
-
discontinue all copying and use of the Root Certificates which have been replaced, and (ii) to use
|
75
|
-
Symantec’s then-current Root Certificates. Any updates to the Root Certificates are incorporated into and
|
76
|
-
subject to the terms of this Agreement.
|
77
|
-
4.2. You shall appoint at least one (1) individual as the administrative contact designated to address any
|
78
|
-
Root Certificate issues and shall provide the contact information for such individual to dl-tssroot@symantec.com.
|
79
|
-
4.3 In the event You become aware of or suspect any event that diminishes the integrity of Symantec's
|
80
|
-
data or public key system ("Compromise"), You shall immediately notify Symantec at dl-tss-
|
81
|
-
root@symantec.com of such Compromise, and take reasonable steps to assist and cooperate with
|
82
|
-
Symantec to remedy the Compromise.
|
83
|
-
4.4 In the event that Symantec modifies these terms of use for the Root certificates for all end users,
|
84
|
-
Symantec shall post the modified terms for the Agreement on the applicable URL and may post the
|
85
|
-
modified terms on the Symantec corporate website. You shall be responsible for regularly checking the
|
86
|
-
applicable URL for modifications to this Agreement. Such modifications shall be effective and binding on
|
87
|
-
Customer within thirty (30) days of Symantec’s posting such modifications to its website. If you do not
|
88
|
-
accept the modified Agreement, discontinue use of the Root Certificates and this Agreement will be
|
89
|
-
deemed as terminated.
|
90
|
-
5. CONFIDENTIALITY.
|
91
|
-
5.1. Confidential Information. "Confidential Information" means the root private keys corresponding to the
|
92
|
-
public key in a Root Certificate, and any confidential, trade secret, or other proprietary information
|
93
|
-
disclosed by a party to the other party under this Agreement, except for Information that: (i) is public
|
94
|
-
knowledge at the time of disclosure, (ii) was known by the receiving party before disclosure by the
|
95
|
-
disclosing party, or becomes public knowledge or otherwise known to the receiving party after such
|
96
|
-
disclosure, other than by breach of a confidentiality obligation, or (iii) is independently developed by the
|
97
|
-
receiving party by persons without access to Confidential Information of the disclosing party.
|
98
|
-
5.2. Protection of Confidential Information. The receiving party shall: (i) not disclose the Confidential
|
99
|
-
information to any third party, (ii) not use the Confidential Information except for purposes of performing
|
100
|
-
this Agreement, and (iii) take steps consistent with its protection of its own confidential and proprietary
|
101
|
-
information (but in no event exercise less than reasonable care) to prevent unauthorized disclosure of the
|
102
|
-
Confidential Information. Each party acknowledges that breach of this Section 5 may cause irreparable
|
103
|
-
harm to the disclosing party entitling the disclosing party to injunctive relief, among other remedies.
|
104
|
-
5.3. Mutual Cooperation. Each party will notify and cooperate with the other party in enforcing the
|
105
|
-
disclosing party's rights if such party becomes aware of a threatened or actual violation of the
|
106
|
-
confidentiality requirements of this Section 5. Each party shall have confidentiality agreements with its
|
107
|
-
employees, agents or independent contractors sufficient in scope to fulfill its confidentiality obligations
|
108
|
-
under this Agreement.
|
109
|
-
6. INTELLECTUAL PROPERTY. You acknowledge that Symantec, including its wholly owned
|
110
|
-
subsidiaries, retains all intellectual property rights and title (including any patent, copyright, trademark,
|
111
|
-
trade secret, and other rights) in and to the Root Certificates, the public and private keys corresponding to
|
112
|
-
such Root Certificates ("Symantec Intellectual Property"). This Agreement does not give You any
|
113
|
-
intellectual property rights in the Symantec intellectual property except for the license granted in Section
|
114
|
-
2. To the extent You use Symantec's trademarks or logos as permitted herein, You agree to comply with
|
115
|
-
all usage requirements set forth in the then current version of Symantec's Logo and Trademark Usage
|
116
|
-
Guide (http://www.symantec.com/about/profile/policies/trademarks.jsp) and any other guides and
|
117
|
-
procedures of Symantec.
|
118
|
-
7. NO WARRANTIES. THE ROOT CERTIFICATES, INCLUDING UPDATES, ARE PROVIDED "AS IS"
|
119
|
-
WITHOUT ANY WARRANTY WHATSOEVER. SYMANTEC HEREBY DISCLAIMS ALL WARRANTIES,
|
120
|
-
WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING WITHOUT LIMITATION, ANY
|
121
|
-
IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
122
|
-
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
123
|
-
8. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY WILL
|
124
|
-
SYMANTEC OR ITS LICENSORS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY
|
125
|
-
CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR EXEMPLARY DAMAGES, WHETHER
|
126
|
-
FORESEEABLE OR UNFORESEEABLE, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE
|
127
|
-
POSSIBILITY OF SUCH DAMAGES. YOU WILL TAKE REASONABLE MEASURES TO INSURE THAT
|
128
|
-
THE TERMS AND CONDITIONS SET FORTH IN THE PRECEDING SENTENCE OF THIS SECTION 8
|
129
|
-
ARE INCORPORATED INTO ANY AGREEMENT BETWEEN YOU AND YOUR CUSTOMERS OR
|
130
|
-
LICENSEES. SYMANTEC SHALL NOT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY
|
131
|
-
DAMAGES CAUSED BY YOUR OR A THIRD PARTY’S CONTINUED USE OF ANY OUTDATED
|
132
|
-
ROOTS FOR WHICH AN UPDATED VERSION IS MADE AVAILABLE BY SYMANTEC. FURTHER,
|
133
|
-
UNDER NO CIRCUMSTANCES WILL SYMANTEC'S LIABILITY FOR ANY ACTION OR CLAIM EXCEED
|
134
|
-
USD$1,000, REGARDLESS OF WHETHER SUCH ACTION OR CLAIM IS BASED IN CONTRACT,
|
135
|
-
TORT, STRICT LIABILITY, OR OTHERWISE.
|
136
|
-
9. TERM AND TERMINATION.
|
137
|
-
9.1. Term. This Agreement shall become effective as of the earlier of, Your first use of the Root
|
138
|
-
Certificates, and shall remain in effect until the earlier of (i) Your discontinued use of the Root Certificates;
|
139
|
-
(ii) termination by either party under the terms of Section 9.2, below; or (iii) Symantec’s notice to You that
|
140
|
-
Symantec is no longer providing Root Certificates for use.
|
141
|
-
9.2. Termination for Default/Insolvency. Either party shall be entitled to terminate this Agreement in the
|
142
|
-
event of a failure by the other party to perform any of its material obligations under this Agreement if such
|
143
|
-
breach is not cured within thirty (30) days after receipt of written notice thereof from the non-defaulting
|
144
|
-
party or within forty-eight (48) hours after receipt of such written notice if a breach by You may
|
145
|
-
compromise the security of the Symantec Trust Network or other system. This Agreement shall terminate
|
146
|
-
upon the election of and notice from a party to the other if the other party is adjudged insolvent or
|
147
|
-
bankrupt, or the institution of any proceedings by or against the other party seeking relief, reorganization,
|
148
|
-
or arrangement under any laws relating to insolvency, or any assignment for the benefit of creditors, or
|
149
|
-
the appointment of a receiver, liquidator, or trustee of any of the other party's property or assets, or the
|
150
|
-
liquidation, dissolution, or winding up of the other party's business.
|
151
|
-
9.3. Effect of Expiration or Termination. Upon expiration or termination of this Agreement, except for a
|
152
|
-
breach by You, You may continue to distribute the current version of Your Products which incorporate the
|
153
|
-
Root Certificates. Any updates or upgrades thereto may not include the Root Certificates and You shall
|
154
|
-
stop making copies of Root Certificates, shall stop including Root Certificates in Your Products, and shall
|
155
|
-
stop using Symantec’s logos and trademarks. The provisions of Sections 3, 4.3, 5, 6, 7, 8, 9.3, and 10
|
156
|
-
shall survive termination of this Agreement.
|
157
|
-
10. GENERAL.
|
158
|
-
10.1. Governing Laws. This Agreement and any disputes relating to the services provided hereunder shall
|
159
|
-
be governed and interpreted according to each of the following laws, respectively, without regard to its
|
160
|
-
conflicts of law provisions: (a) the laws of the State of California, if You are located in North America or
|
161
|
-
Latin America; or (b) the law of England, if You are located in Europe, Middle East or Africa; or (c) the
|
162
|
-
laws of Singapore, if You are located in Asia Pacific including Japan. The United Nations Convention on
|
163
|
-
Contracts for the International Sale of Goods shall not apply to this Agreement.
|
164
|
-
10.2. Binding Upon Successors; Assignment. This Agreement shall be binding upon, and inure to the
|
165
|
-
benefit of, the successors, executors, heirs, representatives, administrators, and assigns of the parties
|
166
|
-
hereto. Notwithstanding the foregoing, You may not assign Your rights or obligations under this
|
167
|
-
Agreement without the prior written consent of Symantec. Any such purported assignment of this
|
168
|
-
Agreement without obtaining written consent shall be void and of no effect.
|
169
|
-
10.3. Severability; Enforcement; No Waiver. The unenforceability of any provision or provisions of this
|
170
|
-
Agreement shall not impair the enforceability of any other part of this Agreement. If any provision of this
|
171
|
-
Agreement shall be deemed invalid or unenforceable, in whole or in part, this Agreement shall be deemed
|
172
|
-
amended to delete or modify, as necessary, the invalid or unenforceable provision to render it valid,
|
173
|
-
enforceable, and, insofar as possible, consistent with the original intent of the parties. The failure of a
|
174
|
-
party, at any time or from time to time, to require performance of any obligations of the other party
|
175
|
-
hereunder shall not be deemed a waiver and shall not affect its right to enforce any provision of this
|
176
|
-
Agreement at a subsequent time.
|
177
|
-
10.4. Entire Agreement; Amendments; Waivers. This Agreement constitutes the entire understanding and
|
178
|
-
agreement of the parties, whether written or oral, with respect to the subject matter hereof and supersede
|
179
|
-
all prior and contemporaneous agreements or understandings between the parties. Any term or provision
|
180
|
-
of this Agreement may be amended, and the observance of any term of this Agreement may be waived,
|
181
|
-
only by writing signed by the parties to be bound thereby.
|
182
|
-
10.5. Compliance with Law, Export Requirements and Foreign Reshipment Liability. Each party shall
|
183
|
-
comply with all applicable federal, state and local laws and regulations in connection with its performance
|
184
|
-
under this Agreement. Services, including documentation, may include controlled technology or technical
|
185
|
-
data (collectively “Controlled Technology”) that is subject to the U.S. Export Administration Regulations
|
186
|
-
(EAR), and diversion contrary to U.S. law is prohibited. You agree to comply with all relevant laws
|
187
|
-
including the U.S. EAR and the laws of any country from which Controlled Technology is exported. All
|
188
|
-
Controlled Technology is prohibited for export or re-export to Cuba, North Korea, Iran, Sudan and Syria
|
189
|
-
and to any country or its nationals subject to relevant embargo or sanction or to any entity or person for
|
190
|
-
which an export license is required per any relevant restricted party list, without first obtaining a license.
|
191
|
-
Furthermore, You hereby agree that You will not use or allow use of Controlled Technology in connection
|
192
|
-
with chemical, biological, or nuclear weapons, or missiles, drones or space launch vehicles capable of
|
193
|
-
delivering such weapons. Symantec shall have the right to suspend performance of any of its obligations
|
194
|
-
under this Agreement, without any prior notice being required and without any liability to Customer, if You
|
195
|
-
fail to comply with this provision.
|
196
|
-
10.6. Notices. You will make all notices, demands or requests to Symantec with respect to this Agreement
|
197
|
-
in writing to the "Contact" address listed on the website from where you downloaded the Root Certificates,
|
198
|
-
with a copy to: General Counsel – Legal Department, Symantec Corporation, 350 Ellis Street, Mountain
|
199
|
-
View, California 94043, USA. Notices shall be effective on the date received (unless the notice specifies a
|
200
|
-
later date) only if it is sent by a courier service that confirms delivery in writing or if sent by certified or
|
201
|
-
registered mail, postage prepaid, return receipt requested. Symantec may post notices and updates
|
202
|
-
regarding the Agreement or the Root Certificates at the URL provided to You for the Root Certificates.
|
203
|
-
You shall be responsible for regularly checking the applicable URL for notices from Symantec regarding
|
204
|
-
the Agreement or the Root Certificates. No notices, demands, or requests to Symantec with respect to
|
205
|
-
this Agreement may be delivered by electronic mail. You shall immediately notify Symantec of any legal
|
206
|
-
notices served on You that might affect Symantec, and shall promptly forward the original or a copy of
|
207
|
-
such notice to Symantec.
|
208
|
-
10.7. Independent Parties. The relationship between You and Symantec is that of independent
|
209
|
-
contractors. Neither party nor its employees, consultants, contractors, or agents are agents, employees,
|
210
|
-
or joint venturers of the other party, nor do they have any authority to bind the other party by contract or
|
211
|
-
otherwise to any obligation.
|
212
|
-
Root Certificate License Agreement v3.0 (January 2014)
|
213
|
-
```
|
26
|
+
For versions older than 7.0, please consult the `THIRD_PARTY_NOTICES.md`
|
27
|
+
document distributed with the agent. Any version of the agent not containing
|
28
|
+
that document are not thought to include any third party software.
|