newrelic_rpm 6.9.0.363 → 6.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
- data/.github/ISSUE_TEMPLATE/config.yml +5 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +24 -0
- data/.github/actions/annotate/README.md +79 -0
- data/.github/actions/annotate/action.yml +6 -0
- data/.github/actions/annotate/dist/index.js +433 -0
- data/.github/actions/annotate/index.js +25 -0
- data/.github/actions/annotate/package-lock.json +172 -0
- data/.github/actions/annotate/package.json +30 -0
- data/.github/actions/annotate/pre-commit +5 -0
- data/.github/actions/build-ruby/README.md +79 -0
- data/.github/actions/build-ruby/action.yml +15 -0
- data/.github/actions/build-ruby/dist/index.js +52683 -0
- data/.github/actions/build-ruby/index.js +514 -0
- data/.github/actions/build-ruby/package-lock.json +581 -0
- data/.github/actions/build-ruby/package.json +32 -0
- data/.github/actions/build-ruby/pre-commit +5 -0
- data/.github/pull_request_template.md +16 -0
- data/.github/workflows/ci.yml +212 -0
- data/.github/workflows/pr_review_checklist.yml +22 -0
- data/.github/workflows/release.yml +78 -0
- data/.github/workflows/scripts/rubygems-authenticate.py +13 -0
- data/.github/workflows/scripts/rubygems-publish.rb +32 -0
- data/.github/workflows/snyk.yml +27 -0
- data/.github/workflows/stale.yml +21 -0
- data/.gitignore +6 -0
- data/CHANGELOG.md +254 -10
- data/CONTRIBUTING.md +106 -19
- data/Gemfile +6 -2
- data/LICENSE +208 -38
- data/README.md +81 -85
- data/ROADMAP.md +24 -0
- data/Rakefile +2 -0
- data/THIRD_PARTY_NOTICES.md +213 -0
- data/bin/nrdebug +1 -1
- data/init.rb +1 -1
- data/install.rb +1 -1
- data/lib/new_relic/agent.rb +14 -6
- data/lib/new_relic/agent/adaptive_sampler.rb +1 -1
- data/lib/new_relic/agent/agent.rb +15 -6
- data/lib/new_relic/agent/agent_logger.rb +1 -1
- data/lib/new_relic/agent/attribute_filter.rb +1 -1
- data/lib/new_relic/agent/attribute_processing.rb +1 -1
- data/lib/new_relic/agent/attributes.rb +3 -1
- data/lib/new_relic/agent/audit_logger.rb +1 -1
- data/lib/new_relic/agent/autostart.rb +1 -1
- data/lib/new_relic/agent/chained_call.rb +1 -1
- data/lib/new_relic/agent/commands/agent_command.rb +1 -1
- data/lib/new_relic/agent/commands/agent_command_router.rb +1 -1
- data/lib/new_relic/agent/commands/thread_profiler_session.rb +1 -1
- data/lib/new_relic/agent/configuration.rb +1 -1
- data/lib/new_relic/agent/configuration/default_source.rb +28 -1
- data/lib/new_relic/agent/configuration/dotted_hash.rb +1 -1
- data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
- data/lib/new_relic/agent/configuration/event_harvest_config.rb +1 -1
- data/lib/new_relic/agent/configuration/high_security_source.rb +1 -1
- data/lib/new_relic/agent/configuration/manager.rb +1 -1
- data/lib/new_relic/agent/configuration/manual_source.rb +1 -1
- data/lib/new_relic/agent/configuration/mask_defaults.rb +1 -1
- data/lib/new_relic/agent/configuration/security_policy_source.rb +1 -1
- data/lib/new_relic/agent/configuration/server_source.rb +1 -1
- data/lib/new_relic/agent/configuration/yaml_source.rb +1 -1
- data/lib/new_relic/agent/connect/request_builder.rb +1 -1
- data/lib/new_relic/agent/connect/response_handler.rb +1 -1
- data/lib/new_relic/agent/custom_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/database.rb +1 -1
- data/lib/new_relic/agent/database/explain_plan_helpers.rb +1 -1
- data/lib/new_relic/agent/database/obfuscation_helpers.rb +2 -2
- data/lib/new_relic/agent/database/obfuscator.rb +1 -1
- data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
- data/lib/new_relic/agent/datastores.rb +1 -1
- data/lib/new_relic/agent/datastores/metric_helper.rb +1 -1
- data/lib/new_relic/agent/datastores/mongo.rb +2 -2
- data/lib/new_relic/agent/datastores/mongo/event_formatter.rb +1 -1
- data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
- data/lib/new_relic/agent/datastores/mongo/obfuscator.rb +1 -1
- data/lib/new_relic/agent/datastores/mongo/statement_formatter.rb +1 -1
- data/lib/new_relic/agent/datastores/redis.rb +1 -1
- data/lib/new_relic/agent/deprecator.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/cross_app_payload.rb +3 -2
- data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/{distributed_trace_intrinsics.rb → distributed_trace_attributes.rb} +9 -5
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_metrics.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +3 -4
- data/lib/new_relic/agent/distributed_tracing/distributed_trace_transport_type.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/trace_context.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing/trace_context_payload.rb +2 -2
- data/lib/new_relic/agent/encoding_normalizer.rb +1 -1
- data/lib/new_relic/agent/error_collector.rb +31 -12
- data/lib/new_relic/agent/error_event_aggregator.rb +5 -5
- data/lib/new_relic/agent/error_trace_aggregator.rb +1 -1
- data/lib/new_relic/agent/event_aggregator.rb +1 -1
- data/lib/new_relic/agent/event_buffer.rb +1 -1
- data/lib/new_relic/agent/event_listener.rb +1 -1
- data/lib/new_relic/agent/event_loop.rb +1 -1
- data/lib/new_relic/agent/external.rb +1 -1
- data/lib/new_relic/agent/guid_generator.rb +1 -1
- data/lib/new_relic/agent/harvester.rb +1 -1
- data/lib/new_relic/agent/heap.rb +1 -1
- data/lib/new_relic/agent/hostname.rb +8 -2
- data/lib/new_relic/agent/http_clients/abstract.rb +82 -0
- data/lib/new_relic/agent/http_clients/curb_wrappers.rb +25 -20
- data/lib/new_relic/agent/http_clients/excon_wrappers.rb +29 -14
- data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +18 -22
- data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +11 -12
- data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +17 -5
- data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +5 -7
- data/lib/new_relic/agent/http_clients/uri_util.rb +12 -11
- data/lib/new_relic/agent/instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/action_cable_subscriber.rb +5 -6
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +5 -1
- data/lib/new_relic/agent/instrumentation/action_view_subscriber.rb +12 -3
- data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_record.rb +85 -38
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +82 -24
- data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +92 -34
- data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +8 -3
- data/lib/new_relic/agent/instrumentation/active_storage.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_storage_subscriber.rb +9 -5
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +24 -8
- data/lib/new_relic/agent/instrumentation/authlogic.rb +1 -1
- data/lib/new_relic/agent/instrumentation/bunny.rb +114 -51
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/curb.rb +92 -27
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +4 -2
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +61 -25
- data/lib/new_relic/agent/instrumentation/excon.rb +1 -1
- data/lib/new_relic/agent/instrumentation/excon/connection.rb +7 -4
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -2
- data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
- data/lib/new_relic/agent/instrumentation/http.rb +6 -3
- data/lib/new_relic/agent/instrumentation/httpclient.rb +5 -3
- data/lib/new_relic/agent/instrumentation/ignore_actions.rb +1 -1
- data/lib/new_relic/agent/instrumentation/memcache.rb +4 -2
- data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +7 -3
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
- data/lib/new_relic/agent/instrumentation/middleware_proxy.rb +12 -4
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +9 -7
- data/lib/new_relic/agent/instrumentation/mongo.rb +10 -4
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +36 -3
- data/lib/new_relic/agent/instrumentation/net.rb +59 -22
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +26 -2
- data/lib/new_relic/agent/instrumentation/padrino.rb +40 -16
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rack.rb +36 -13
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails_middleware.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_view.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rake.rb +55 -20
- data/lib/new_relic/agent/instrumentation/redis.rb +141 -56
- data/lib/new_relic/agent/instrumentation/resque.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sequel_helper.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +48 -24
- data/lib/new_relic/agent/instrumentation/sinatra.rb +62 -23
- data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sunspot.rb +1 -1
- data/lib/new_relic/agent/instrumentation/typhoeus.rb +23 -6
- data/lib/new_relic/agent/internal_agent_error.rb +1 -1
- data/lib/new_relic/agent/javascript_instrumentor.rb +1 -1
- data/lib/new_relic/agent/log_once.rb +1 -1
- data/lib/new_relic/agent/logging.rb +2 -2
- data/lib/new_relic/agent/memory_logger.rb +1 -1
- data/lib/new_relic/agent/messaging.rb +1 -1
- data/lib/new_relic/agent/method_tracer.rb +16 -5
- data/lib/new_relic/agent/method_tracer_helpers.rb +2 -2
- data/lib/new_relic/agent/monitors.rb +1 -1
- data/lib/new_relic/agent/monitors/cross_app_monitor.rb +1 -1
- data/lib/new_relic/agent/monitors/distributed_tracing_monitor.rb +1 -1
- data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
- data/lib/new_relic/agent/monitors/synthetics_monitor.rb +1 -1
- data/lib/new_relic/agent/new_relic_service.rb +26 -5
- data/lib/new_relic/agent/new_relic_service/encoders.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/marshaller.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/security_policy_settings.rb +1 -1
- data/lib/new_relic/agent/noticible_error.rb +22 -0
- data/lib/new_relic/agent/null_logger.rb +1 -1
- data/lib/new_relic/agent/obfuscator.rb +1 -1
- data/lib/new_relic/agent/parameter_filtering.rb +1 -1
- data/lib/new_relic/agent/payload_metric_mapping.rb +1 -1
- data/lib/new_relic/agent/pipe_channel_manager.rb +1 -1
- data/lib/new_relic/agent/pipe_service.rb +1 -1
- data/lib/new_relic/agent/prepend_supportability.rb +1 -1
- data/lib/new_relic/agent/priority_sampled_buffer.rb +8 -5
- data/lib/new_relic/agent/range_extensions.rb +1 -1
- data/lib/new_relic/agent/rules_engine.rb +1 -1
- data/lib/new_relic/agent/rules_engine/replacement_rule.rb +1 -1
- data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -1
- data/lib/new_relic/agent/sampler.rb +1 -1
- data/lib/new_relic/agent/sampler_collection.rb +1 -1
- data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/object_sampler.rb +1 -1
- data/lib/new_relic/agent/samplers/vm_sampler.rb +1 -1
- data/lib/new_relic/agent/span_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/span_event_primitive.rb +71 -37
- data/lib/new_relic/agent/sql_sampler.rb +4 -4
- data/lib/new_relic/agent/stats.rb +1 -1
- data/lib/new_relic/agent/stats_engine.rb +1 -1
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +1 -1
- data/lib/new_relic/agent/stats_engine/stats_hash.rb +1 -1
- data/lib/new_relic/agent/supported_versions.rb +1 -1
- data/lib/new_relic/agent/synthetics_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/system_info.rb +13 -4
- data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
- data/lib/new_relic/agent/threading/backtrace_node.rb +1 -1
- data/lib/new_relic/agent/threading/backtrace_service.rb +1 -1
- data/lib/new_relic/agent/threading/thread_profile.rb +1 -1
- data/lib/new_relic/agent/timestamp_sampled_buffer.rb +1 -1
- data/lib/new_relic/agent/tracer.rb +31 -16
- data/lib/new_relic/agent/transaction.rb +67 -46
- data/lib/new_relic/agent/transaction/abstract_segment.rb +29 -2
- data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
- data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
- data/lib/new_relic/agent/transaction/distributed_tracing.rb +2 -2
- data/lib/new_relic/agent/transaction/external_request_segment.rb +28 -12
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -1
- data/lib/new_relic/agent/transaction/request_attributes.rb +1 -1
- data/lib/new_relic/agent/transaction/segment.rb +23 -3
- data/lib/new_relic/agent/transaction/slowest_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction/synthetics_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction/trace.rb +1 -1
- data/lib/new_relic/agent/transaction/trace_builder.rb +1 -1
- data/lib/new_relic/agent/transaction/trace_context.rb +1 -1
- data/lib/new_relic/agent/transaction/trace_node.rb +1 -1
- data/lib/new_relic/agent/transaction/tracing.rb +1 -1
- data/lib/new_relic/agent/transaction/transaction_sample_buffer.rb +1 -1
- data/lib/new_relic/agent/transaction_error_primitive.rb +8 -6
- data/lib/new_relic/agent/transaction_event_aggregator.rb +1 -1
- data/lib/new_relic/agent/transaction_event_primitive.rb +3 -3
- data/lib/new_relic/agent/transaction_event_recorder.rb +1 -1
- data/lib/new_relic/agent/transaction_metrics.rb +1 -1
- data/lib/new_relic/agent/transaction_sampler.rb +1 -1
- data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
- data/lib/new_relic/agent/utilization/aws.rb +1 -1
- data/lib/new_relic/agent/utilization/azure.rb +1 -1
- data/lib/new_relic/agent/utilization/gcp.rb +1 -1
- data/lib/new_relic/agent/utilization/pcf.rb +1 -1
- data/lib/new_relic/agent/utilization/vendor.rb +1 -1
- data/lib/new_relic/agent/utilization_data.rb +1 -1
- data/lib/new_relic/agent/vm.rb +1 -1
- data/lib/new_relic/agent/vm/jruby_vm.rb +1 -1
- data/lib/new_relic/agent/vm/monotonic_gc_profiler.rb +1 -1
- data/lib/new_relic/agent/vm/mri_vm.rb +1 -1
- data/lib/new_relic/agent/vm/snapshot.rb +1 -1
- data/lib/new_relic/agent/worker_loop.rb +1 -1
- data/lib/new_relic/cli/command.rb +1 -1
- data/lib/new_relic/cli/commands/deployments.rb +1 -1
- data/lib/new_relic/cli/commands/install.rb +4 -3
- data/lib/new_relic/coerce.rb +1 -1
- data/lib/new_relic/collection_helper.rb +1 -1
- data/lib/new_relic/constants.rb +5 -1
- data/lib/new_relic/control.rb +1 -1
- data/lib/new_relic/control/class_methods.rb +1 -1
- data/lib/new_relic/control/frameworks.rb +1 -1
- data/lib/new_relic/control/frameworks/external.rb +1 -1
- data/lib/new_relic/control/frameworks/merb.rb +1 -1
- data/lib/new_relic/control/frameworks/rails.rb +1 -1
- data/lib/new_relic/control/frameworks/rails3.rb +1 -1
- data/lib/new_relic/control/frameworks/rails4.rb +1 -1
- data/lib/new_relic/control/frameworks/rails_notifications.rb +1 -1
- data/lib/new_relic/control/frameworks/ruby.rb +1 -1
- data/lib/new_relic/control/frameworks/sinatra.rb +1 -1
- data/lib/new_relic/control/instance_methods.rb +1 -1
- data/lib/new_relic/control/instrumentation.rb +1 -1
- data/lib/new_relic/control/server_methods.rb +1 -1
- data/lib/new_relic/delayed_job_injection.rb +1 -1
- data/lib/new_relic/dependency_detection.rb +1 -1
- data/lib/new_relic/environment_report.rb +6 -2
- data/lib/new_relic/helper.rb +1 -1
- data/lib/new_relic/language_support.rb +1 -1
- data/lib/new_relic/latest_changes.rb +2 -2
- data/lib/new_relic/local_environment.rb +1 -1
- data/lib/new_relic/metric_data.rb +1 -1
- data/lib/new_relic/metric_spec.rb +1 -1
- data/lib/new_relic/noticed_error.rb +29 -10
- data/lib/new_relic/rack.rb +1 -1
- data/lib/new_relic/rack/agent_hooks.rb +1 -1
- data/lib/new_relic/rack/agent_middleware.rb +1 -1
- data/lib/new_relic/rack/browser_monitoring.rb +3 -2
- data/lib/new_relic/recipes.rb +1 -1
- data/lib/new_relic/recipes/capistrano3.rb +1 -1
- data/lib/new_relic/recipes/capistrano_legacy.rb +1 -1
- data/lib/new_relic/supportability_helper.rb +1 -1
- data/lib/new_relic/version.rb +3 -3
- data/lib/newrelic_rpm.rb +1 -1
- data/lib/sequel/extensions/newrelic_instrumentation.rb +1 -1
- data/lib/sequel/plugins/newrelic_instrumentation.rb +1 -1
- data/lib/tasks/all.rb +1 -1
- data/lib/tasks/multiverse.rb +35 -1
- data/lib/tasks/newrelic.rb +1 -1
- data/lib/tasks/tests.rake +1 -1
- data/newrelic_rpm.gemspec +10 -9
- data/recipes/newrelic.rb +1 -1
- data/test/agent_helper.rb +237 -70
- metadata +42 -18
- data/.travis.yml +0 -210
- data/lib/new_relic/agent/http_clients/abstract_request.rb +0 -31
- data/lib/new_relic/metrics.rb +0 -13
- data/true +0 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
name: "Close stale issues"
|
2
|
+
on:
|
3
|
+
schedule:
|
4
|
+
- cron: "0 0 * * *"
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
stale:
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
steps:
|
10
|
+
- uses: actions/stale@v3
|
11
|
+
with:
|
12
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
13
|
+
stale-issue-message: 'This has been marked stale after 30 days with no activity. It will be closed in 5 days if there is no activity.'
|
14
|
+
stale-pr-message: 'Stale pull request message'
|
15
|
+
days-before-stale: 30
|
16
|
+
days-before-close: 5
|
17
|
+
stale-issue-label: 'stale'
|
18
|
+
exempt-issue-labels: 'good first issue,help wanted,in progress,on hold,in review,roadmap'
|
19
|
+
stale-pr-label: 'stale'
|
20
|
+
exempt-pr-labels: 'on hold,in review'
|
21
|
+
|
data/.gitignore
CHANGED
@@ -28,3 +28,9 @@ lib/new_relic/build.rb
|
|
28
28
|
artifacts/
|
29
29
|
test/performance/log/
|
30
30
|
test/performance/script/log/
|
31
|
+
infinite_tracing/log/
|
32
|
+
infinite_tracing/test/new_relic/infinite_tracing/log
|
33
|
+
test/fixtures/cross_agent_tests/*/README.md
|
34
|
+
node_modules/
|
35
|
+
yarn.lock
|
36
|
+
errors.txt
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,249 @@
|
|
1
1
|
# New Relic Ruby Agent Release Notes #
|
2
2
|
|
3
|
+
## v6.13.1
|
4
|
+
|
5
|
+
* **Bugfix: obfuscating URLs to external services no longer modifying original URI**
|
6
|
+
|
7
|
+
A recent change to the Ruby agent to obfuscate URIs sent to external services had the unintended side-effect of removing query parameters
|
8
|
+
from the original URI. This is fixed to obfuscate while also preserving the original URI.
|
9
|
+
|
10
|
+
Thanks to @VictorJimenezKwast for pinpointing and helpful unit test to demonstrate.
|
11
|
+
|
12
|
+
## v6.13.0
|
13
|
+
|
14
|
+
* **Bugfix: never use redirect host when accessing preconnect endpoint**
|
15
|
+
|
16
|
+
When connecting to New Relic, the Ruby Agent uses the value in `Agent.config[:host]` to post a request to the New Relic preconnect endpoint. This endpoint returns a "redirect host" which is the URL to which agents send data from that point on.
|
17
|
+
|
18
|
+
Previously, if the agent needed to reconnect to the collector, it would incorrectly use this redirect host to call the preconnect
|
19
|
+
endpoint, when it should have used the original configured value in `Agent.config[:host]`. The agent now uses the correct host
|
20
|
+
for all calls to preconnect.
|
21
|
+
|
22
|
+
* **Bugfix: calling `add_custom_attributes` no longer modifies the params of the caller**
|
23
|
+
|
24
|
+
The previous agent's improvements to recording attributes at the span level had an unexpected
|
25
|
+
side-effect of modifying the params passed to the API call as duplicated attributes were deleted
|
26
|
+
in the process. This is now fixed and params passed in are no longer modified.
|
27
|
+
|
28
|
+
Thanks to Pete Johns (@johnsyweb) for the PR that resolves this bug.
|
29
|
+
|
30
|
+
* **Bugfix: `http.url` query parameters spans are now obfuscated**
|
31
|
+
|
32
|
+
Previously, the agent was recording the full URL of the external requests, including
|
33
|
+
the query and fragment parts of the URL as part of the attributes on the external request
|
34
|
+
span. This has been fixed so that the URL is obfuscated to filter out potentially sensitive data.
|
35
|
+
|
36
|
+
* **Use system SSL certificates by default**
|
37
|
+
|
38
|
+
The Ruby agent previously used a root SSL/TLS certificate bundle by default. Now the agent will attempt to use
|
39
|
+
the default system certificates, but will fall back to the bundled certs if there is an issue (and log that this occurred).
|
40
|
+
|
41
|
+
* **Bugfix: reduce allocations for segment attributes**
|
42
|
+
|
43
|
+
Previously, every segment received an `Attributes` object on initialization. The agent now lazily creates attributes
|
44
|
+
on segments, resulting in a significant reduction in object allocations for a typical transaction.
|
45
|
+
|
46
|
+
* **Bugfix: eliminate errors around Rake::VERSION with Rails**
|
47
|
+
|
48
|
+
When running a Rails application with rake tasks, customers could see the following error:
|
49
|
+
|
50
|
+
* **Prevent connecting agent thread from hanging on shutdown**
|
51
|
+
|
52
|
+
A bug in `Net::HTTP`'s Gzip decoder can cause the (un-catchable)
|
53
|
+
thread-kill exception to be replaced with a (catchable) `Zlib` exception,
|
54
|
+
which prevents a connecting agent thread from exiting during shutdown,
|
55
|
+
causing the Ruby process to hang indefinitely.
|
56
|
+
This workaround checks for an `aborting` thread in the `#connect` exception handler
|
57
|
+
and re-raises the exception, allowing a killed thread to continue exiting.
|
58
|
+
|
59
|
+
Thanks to Will Jordan (@wjordan) for chasing this one down and patching with tests.
|
60
|
+
|
61
|
+
* **Fix error messages about Rake instrumentation**
|
62
|
+
|
63
|
+
When running a Rails application with rake tasks, customers could see the following error in logs resulting from
|
64
|
+
a small part of rake functionality being loaded with the Rails test runner:
|
65
|
+
|
66
|
+
```
|
67
|
+
ERROR : Error while detecting rake_instrumentation:
|
68
|
+
ERROR : NameError: uninitialized constant Rake::VERSION
|
69
|
+
```
|
70
|
+
|
71
|
+
Such error messages should no longer appear in this context.
|
72
|
+
|
73
|
+
Thanks to @CamilleDrapier for pointing out this issue.
|
74
|
+
|
75
|
+
* **Remove NewRelic::Metrics**
|
76
|
+
|
77
|
+
The `NewRelic::Metrics` module has been removed from the agent since it is no longer used.
|
78
|
+
|
79
|
+
Thanks to @csaura for the contribution!
|
80
|
+
|
81
|
+
## v6.12.0
|
82
|
+
|
83
|
+
* The New Relic Ruby Agent is now open source under the [Apache 2 license](LICENSE)
|
84
|
+
and you can now observe the project roadmap. See our [Contributing guide](https://github.com/newrelic/newrelic-ruby-agent/blob/main/CONTRIBUTING.md)
|
85
|
+
and [Code of Conduct](https://github.com/newrelic/.github/blob/master/CODE_OF_CONDUCT.md) for details on contributing!
|
86
|
+
|
87
|
+
* **Security: Updated all uses of Rake to >= 12.3.3**
|
88
|
+
|
89
|
+
All versions of Rake testing prior to 12.3.3 were removed to address
|
90
|
+
[CVE-2020-8130](https://nvd.nist.gov/vuln/detail/CVE-2020-8130).
|
91
|
+
No functionality in the agent was removed nor deprecated with this change, and older versions
|
92
|
+
of rake are expected to continue to work as they have in the past. However, versions of
|
93
|
+
rake < 12.3.3 are no longer tested nor supported.
|
94
|
+
|
95
|
+
* **Bugfix: fixes an error capturing content length in middleware on multi-part responses**
|
96
|
+
|
97
|
+
In the middleware tracing, the `Content-Length` header is sometimes returned as an array of
|
98
|
+
values when content is a multi-part response. Previously, the agent would fail with
|
99
|
+
"NoMethodError: undefined method `to_i` for Array" Error. This bug is now fixed and
|
100
|
+
multi-part content lengths are summed for a total when an `Array` is present.
|
101
|
+
|
102
|
+
* **Added support for auto-instrumenting Mongo gem versions 2.6 to 2.12**
|
103
|
+
|
104
|
+
* **Bugfix: MongoDB instrumentation did not handle CommandFailed events when noticing errors**
|
105
|
+
|
106
|
+
The mongo gem sometimes returns a CommandFailed object instead of a CommandSucceeded object with
|
107
|
+
error attributes populated. The instrumentation did not handle noticing errors on CommandFailed
|
108
|
+
objects and resulted in logging an error and backtrace to the log file.
|
109
|
+
|
110
|
+
Additionally, a bug in recording the metric for "findAndModify" as all lowercased "findandmodify"
|
111
|
+
for versions 2.1 through 2.5 was fixed.
|
112
|
+
|
113
|
+
* **Bugfix: Priority Sampler causes crash in high throughput environents in rare cases**
|
114
|
+
|
115
|
+
Previously, the priority sampling buffer would, in rare cases, generate an error in high-throughput
|
116
|
+
environments once capacity is reached and the sampling algorthym engages. This issue is fixed.
|
117
|
+
|
118
|
+
* **Additional Transaction Information applied to Span Events**
|
119
|
+
|
120
|
+
When Distributed Tracing and/or Infinite Tracing are enabled, the Agent will now incorporate additional information from the Transaction Event on to the root Span Event of the transaction.
|
121
|
+
|
122
|
+
The following items are affected:
|
123
|
+
* Custom attribute values applied to the Transaction via our [add_custom_attributes](http://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#add_custom_attributes-instance_method) API method.
|
124
|
+
* Request parameters: `request.parameters.*`
|
125
|
+
* Request headers: `request.headers.*`
|
126
|
+
* Response headers: `response.headers.*`
|
127
|
+
* Resque job arguments: `job.resque.args.*`
|
128
|
+
* Sidekiq job arguments: `job.sidekiq.args.*`
|
129
|
+
* Messaging arguments: `message.*`
|
130
|
+
* `httpResponseCode` (deprecated in this version; see note below)/`http.statusCode`
|
131
|
+
* `response.status`
|
132
|
+
* `request.uri`
|
133
|
+
* `request.method`
|
134
|
+
* `host.displayName`
|
135
|
+
|
136
|
+
* **Security Recommendation**
|
137
|
+
|
138
|
+
Review your Transaction attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#transaction_events-attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#transaction_events-attributes-exclude) configurations. Any attribute include or exclude settings specific to Transaction Events should be applied
|
139
|
+
to your Span attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#span-events-attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#span-events-attributes-exclude) configuration or your global attributes [include](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#attributes-include) and [exclude](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/enable-disable-attributes-ruby#attributes-exclude) configuration.
|
140
|
+
|
141
|
+
* **Agent attribute deprecation: httpResponseCode**
|
142
|
+
|
143
|
+
Starting in this agent version, the [agent attribute](https://docs.newrelic.com/docs/agents/ruby-agent/attributes/ruby-agent-attributes#attributes) `httpResponseCode` (string value) has been deprecated. Customers can begin using `http.statusCode`
|
144
|
+
(integer value) immediately, and `httpResponseCode` will be removed in the agent's next major version update.
|
145
|
+
|
146
|
+
* **Bugfix: Eliminate warnings for distributed tracing when using sidekiq**
|
147
|
+
|
148
|
+
Previously, using sidekiq with distributed tracing disabled resulted in warning messages\
|
149
|
+
`WARN : Not configured to accept distributed trace headers`\
|
150
|
+
` WARN : Not configured to insert distributed trace headers`\
|
151
|
+
These messages no longer appear.
|
152
|
+
|
153
|
+
## v6.11.0
|
154
|
+
|
155
|
+
* **Infinite Tracing**
|
156
|
+
|
157
|
+
This release adds support for [Infinite Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/enable-configure/enable-distributed-tracing). Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data. With Infinite Tracing, you get examples of errors and long-running traces so you can better diagnose and troubleshoot your systems.
|
158
|
+
|
159
|
+
Configure your agent to send traces to a trace observer in New Relic Edge. View distributed traces through New Relic’s UI. There is no need to install a collector on your network.
|
160
|
+
|
161
|
+
Infinite Tracing is currently available on a sign-up basis. If you would like to participate, please contact your sales representative.
|
162
|
+
|
163
|
+
* **Bugfix: Cross Application Tracing (CAT) adds a missing field to response**
|
164
|
+
|
165
|
+
Previously, the Ruby agent's Cross Application Tracing header was missing a reserved field that would lead to an error
|
166
|
+
in the Go agent's processing of incoming headers from the Ruby agent. This fix adds that missing field to the headers, eliminating
|
167
|
+
the issue with traces involving the Ruby agent and the Go agent.
|
168
|
+
|
169
|
+
* **Bugfix: Environment Report now supports Rails >= 6.1**
|
170
|
+
|
171
|
+
Previously, users of Rails 6.1 would see the following deprecation warning appear when the Ruby agent attempted to
|
172
|
+
collect enviroment data: `DEPRECATION WARNING: [] is deprecated and will be removed from Rails 6.2`. These deprecation methods
|
173
|
+
no longer appear.
|
174
|
+
|
175
|
+
Thanks to Sébastien Dubois (sedubois) for reporting this issue and for the contribution!
|
176
|
+
|
177
|
+
* **Added distributed tracing to Sidekiq jobs**
|
178
|
+
|
179
|
+
Previously, Sidekiq jobs were not included in portions of <a href="https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing">distributed traces</a> captured by the Ruby agent. Now you can view distributed
|
180
|
+
traces that include Sidekiq jobs instrumented by the Ruby agent.
|
181
|
+
|
182
|
+
Thanks to andreaseger for the contribution!
|
183
|
+
|
184
|
+
* **Bugfix: Eliminate warnings appearing when using `add_method_tracer` with Ruby 2.7**
|
185
|
+
|
186
|
+
Previously, using `add_method_tracer` with Ruby 2.7 to trace a method that included keyword arguments resulted in warning messages:
|
187
|
+
`warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call`. These messages no
|
188
|
+
longer appear.
|
189
|
+
|
190
|
+
Thanks to Harm de Wit and Atsuo Fukaya for reporting the issue!
|
191
|
+
|
192
|
+
## v6.10.0
|
193
|
+
|
194
|
+
* **Error attributes now added to each span that exits with an error or exception**
|
195
|
+
|
196
|
+
Error attributes `error.class` and `error.message` are now included on the span event in which an error
|
197
|
+
or exception was noticed, and, in the case of unhandled exceptions, on any ancestor spans that also exit with an error.
|
198
|
+
The public API method `notice_error` now attaches these error attributes to the currently executing span.
|
199
|
+
|
200
|
+
<a href="https://docs.newrelic.com/docs/apm/distributed-tracing/ui-data/understand-use-distributed-tracing-data#rules-limits">Spans with error details are now highlighted red in the Distributed Tracing UI</a>, and error details will expose the associated
|
201
|
+
`error.class` and `error.message`. It is also now possible to see when an exception leaves the boundary of the span,
|
202
|
+
and if it is caught in an ancestor span without reaching the entry span. NOTE: This “bubbling up” of exceptions will impact
|
203
|
+
the error count when compared to prior behavior for the same trace. It is possible to have a trace that now has span errors
|
204
|
+
without the trace level showing an error.
|
205
|
+
|
206
|
+
If multiple errors occur on the same span, only the most recent error information is added to the attributes. Prior errors on the same span are overwritten.
|
207
|
+
|
208
|
+
These span event attributes conform to <a href="https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected#ignore">ignored errors</a> and <a href="https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected#expected">expected errors</a>.
|
209
|
+
|
210
|
+
* **Added tests for latest Grape / Rack combination**
|
211
|
+
|
212
|
+
For a short period of time, the latest versions of Grape and Rack had compatibility issues.
|
213
|
+
Generally, Rack 2.1.0 should be avoided in all cases due to breaking changes in many gems
|
214
|
+
reliant on Rack. We recommend using either Rack <= 2.0.9, or using latest Rack when using Grape
|
215
|
+
(2.2.2 at the time of this writing).
|
216
|
+
|
217
|
+
* **Bugfix: Calculate Content-Length in bytes**
|
218
|
+
|
219
|
+
Previously, the Content-Length HTTP header would be incorrect after injecting the Browser Monitoring
|
220
|
+
JS when the response contained Unicode characters because the value was not calculated in bytes.
|
221
|
+
The Content-Length is now correctly updated.
|
222
|
+
|
223
|
+
Thanks to thaim for the contribution!
|
224
|
+
|
225
|
+
* **Bugfix: Fix Content-Length calculation when response is nil**
|
226
|
+
|
227
|
+
Previously, calculating the Content-Length HTTP header would result in a `NoMethodError` in the case of
|
228
|
+
a nil response. These errors will no longer occur in such a case.
|
229
|
+
|
230
|
+
Thanks to Johan Van Ryseghem for the contribution!
|
231
|
+
|
232
|
+
* **Bugfix: DecoratingFormatter now logs timestamps as millisecond Integers**
|
233
|
+
|
234
|
+
Previously the agent sent timestamps as a Float with milliseconds as part of the
|
235
|
+
fractional value. Logs in Context was changed to only accept Integer values and this
|
236
|
+
release changes DecoratingFormatter to match.
|
237
|
+
|
238
|
+
* **Added --force option to `newrelic install` cli command to allow overwriting newrelic.yml**
|
239
|
+
|
240
|
+
* **Bugfix: The fully qualified hostname now works correctly for BSD and Solaris**
|
241
|
+
|
242
|
+
Previously, when running on systems such as BSD and Solaris, the agent was unable to determine the fully
|
243
|
+
qualified domain name, which is used to help link Ruby agent data with data from New Relic Infrastructure.
|
244
|
+
This information is now successfully collected on various BSD distros and Solaris.
|
245
|
+
|
246
|
+
|
3
247
|
## v6.9.0
|
4
248
|
|
5
249
|
* **Added support for W3C Trace Context, with easy upgrade from New Relic trace context**
|
@@ -34,7 +278,7 @@
|
|
34
278
|
|
35
279
|
Known Issues and Workarounds
|
36
280
|
|
37
|
-
* If a .NET agent is initiating traces as the root service, do not upgrade your
|
281
|
+
* If a .NET agent is initiating traces as the root service, do not upgrade your
|
38
282
|
downstream Ruby New Relic agents to this agent release.
|
39
283
|
|
40
284
|
* **Official Ruby 2.7 support**
|
@@ -43,10 +287,10 @@
|
|
43
287
|
|
44
288
|
* **Reduced allocations when tracing transactions using API calls**
|
45
289
|
|
46
|
-
Default empty hashes for `options` parameter were not frozen, leading to
|
290
|
+
Default empty hashes for `options` parameter were not frozen, leading to
|
47
291
|
excessive and unnecessary allocations when calling APIs for tracing transactions.
|
48
292
|
|
49
|
-
Thanks to Joel Turkel (jturkel) for the contribution!
|
293
|
+
Thanks to Joel Turkel (jturkel) for the contribution!
|
50
294
|
|
51
295
|
* **Bugfix for Resque worker thread race conditions**
|
52
296
|
|
@@ -56,10 +300,10 @@
|
|
56
300
|
Thanks to Bertrand Paquet (bpaquet) for the contribution!
|
57
301
|
|
58
302
|
* **Bugfix for Content-Length when injecting Browser Monitoring JS**
|
59
|
-
|
303
|
+
|
60
304
|
The Content-Length HTTP header would be incorrect after injecting the Browser Monitoring
|
61
305
|
JS into the HEAD tag of the HTML source with Content-Length and lead to the HTML BODY content
|
62
|
-
being truncated in some cases. The Content-Length is now correctly updated after injecting the
|
306
|
+
being truncated in some cases. The Content-Length is now correctly updated after injecting the
|
63
307
|
Browser Monitoring JS script.
|
64
308
|
|
65
309
|
Thanks to Slava Kardakov (ojab) for the contribution!
|
@@ -77,7 +321,7 @@
|
|
77
321
|
level custom attributes, more granular tagging of events is possible for
|
78
322
|
easier isolation and review of trace events. For more information:
|
79
323
|
|
80
|
-
* [`Agent#add_custom_span_attributes`](https://www.rubydoc.info/github/newrelic/
|
324
|
+
* [`Agent#add_custom_span_attributes`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#add_custom_span_attributes)
|
81
325
|
|
82
326
|
* **Enables ability to migrate to Configurable Security Policies (CSP) on a per agent
|
83
327
|
basis for accounts already using High Security Mode (HSM).**
|
@@ -145,10 +389,10 @@
|
|
145
389
|
* **Trace and Entity Metadata API**
|
146
390
|
|
147
391
|
Several new API methods have been added to the agent:
|
148
|
-
* [`Agent#linking_metadata`](https://www.rubydoc.info/github/newrelic/
|
149
|
-
* [`Tracer#trace_id`](https://www.rubydoc.info/github/newrelic/
|
150
|
-
* [`Tracer#span_id`](https://www.rubydoc.info/github/newrelic/
|
151
|
-
* [`Tracer#sampled?`](https://www.rubydoc.info/github/newrelic/
|
392
|
+
* [`Agent#linking_metadata`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent#linking_metadata-instance_method)
|
393
|
+
* [`Tracer#trace_id`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#trace_id-class_method)
|
394
|
+
* [`Tracer#span_id`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#span_id-class_method)
|
395
|
+
* [`Tracer#sampled?`](https://www.rubydoc.info/github/newrelic/newrelic-ruby-agent/NewRelic/Agent/Tracer#sampled?-class_method)
|
152
396
|
|
153
397
|
These API methods allow you to access information that can be used to link data of your choosing to a trace or entity.
|
154
398
|
|
data/CONTRIBUTING.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# Guidelines for Contributing Code
|
2
2
|
|
3
|
-
|
4
|
-
taken effort to make this process easy for both contributors and our
|
5
|
-
team.
|
3
|
+
New Relic welcomes code contributions by the Ruby community, and
|
4
|
+
have taken effort to make this process easy for both contributors and our
|
5
|
+
development team.
|
6
6
|
|
7
7
|
When contributing, keep in mind that the agent runs in a wide variety of Ruby
|
8
8
|
language implementations (e.g. 2.x.x, jruby, etc.) as well as a wide variety of
|
9
|
-
application environments (e.g. Rails, Sinatra, roll-your-own, etc.) See
|
10
|
-
https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/ruby-agent-requirements-supported-frameworks
|
9
|
+
application environments (e.g. Rails, Sinatra, roll-your-own, etc.) See [Ruby agent requirements and supported frameworks]
|
10
|
+
(https://docs.newrelic.com/docs/agents/ruby-agent/getting-started/ruby-agent-requirements-supported-frameworks)
|
11
11
|
for the current full list.
|
12
12
|
|
13
13
|
Because of this, we need to be more defensive in our coding practices than most
|
@@ -15,10 +15,72 @@ projects. Syntax must be compatible with all supported Ruby implementations and
|
|
15
15
|
we can't assume the presence of any specific libraries, including `ActiveSupport`,
|
16
16
|
`ActiveRecord`, etc.
|
17
17
|
|
18
|
+
## Process
|
19
|
+
|
20
|
+
### Version Support
|
21
|
+
|
22
|
+
When contributing, keep in mind that New Relic customers (that's you!) are
|
23
|
+
running many different versions of Ruby, some of them pretty old. Changes that
|
24
|
+
depend on the newest version of Ruby will probably be rejected, especially if
|
25
|
+
they replace something backwards compatible.
|
26
|
+
|
27
|
+
Be aware that the instrumentation needs to work with a wide range of versions of
|
28
|
+
the instrumented modules, and that code that looks nonsensical or
|
29
|
+
overcomplicated may be that way for compatibility-related reasons. Read all the
|
30
|
+
comments and check the related tests before deciding whether existing code is
|
31
|
+
incorrect.
|
32
|
+
|
33
|
+
If you are planning on contributing a new feature or an otherwise complex
|
34
|
+
contribution, we kindly ask you to start a conversation with the maintainer team
|
35
|
+
by opening up an Github issue first.
|
36
|
+
|
37
|
+
|
38
|
+
### General Guidelines
|
39
|
+
The Ruby agent avoids requiring any dependencies in the main agent code base.
|
40
|
+
Instrumentations and features that would otherwise require a dependency (such as
|
41
|
+
Infinite Tracing, which require gRPC and protobuf) are built as separate gems.
|
42
|
+
If you have a feature or instrumentation request that would require a
|
43
|
+
dependency, please open an Issue to discuss with the maintainers before
|
44
|
+
proceeding.
|
45
|
+
|
46
|
+
Your code will be evaluated for completeness and accuracy in
|
47
|
+
implementation and must be accompanied with appropriate unit tests. New
|
48
|
+
additions that do not break existing tests are the easiest and quickest to be
|
49
|
+
accepted and merged. New features and improvements that break existing
|
50
|
+
functionality are slower to be accepted and merged as they require agreement
|
51
|
+
with maintainers across a majority of the languages New Relic supports. Any
|
52
|
+
such breaking changes will require a major version bump whereas non-breaking
|
53
|
+
additions only lead to minor version bumps.
|
54
|
+
|
55
|
+
Please be aware that the maintainers of New Relic’s agents aim to have as much
|
56
|
+
commonality of functionality across all language agents as makes sense, so we are
|
57
|
+
always working to reconcile language-specific changes against the cross-language
|
58
|
+
community set of agreements.
|
59
|
+
|
60
|
+
### Feature Requests
|
61
|
+
|
62
|
+
Feature requests should be submitted in the [Issue tracker](../../issues), with
|
63
|
+
a description of the expected behavior & use case. Before submitting an Issue,
|
64
|
+
please search for similar ones in the [closed
|
65
|
+
issues](../../issues?q=is%3Aissue+is%3Aclosed).
|
66
|
+
|
67
|
+
### Pull Requests
|
68
|
+
|
69
|
+
We can only accept PRs for version v6.12.0 or greater due to open source
|
70
|
+
licensing restrictions.
|
71
|
+
|
72
|
+
### Code of Conduct
|
73
|
+
|
74
|
+
Before contributing please read the [code of conduct](https://github.com/newrelic/.github/blob/master/CODE_OF_CONDUCT.md)
|
75
|
+
|
76
|
+
Note that our [code of conduct](https://github.com/newrelic/.github/blob/master/CODE_OF_CONDUCT.md) applies to all platforms
|
77
|
+
and venues related to this project; please follow it in all your interactions
|
78
|
+
with the project and its participants.
|
79
|
+
|
18
80
|
## Branches
|
19
81
|
|
20
|
-
The head of
|
21
|
-
New Relic reserves the ability to push an edge to the
|
82
|
+
The head of `main` will generally have New Relic's latest release. However,
|
83
|
+
New Relic reserves the ability to push an edge to the `main`. If you download a
|
22
84
|
release from this repo, use the appropriate tag. New Relic usually pushes beta
|
23
85
|
versions of a release to a working branch before tagging them for General
|
24
86
|
Availability.
|
@@ -39,13 +101,16 @@ Running the test suite is simple. Just invoke:
|
|
39
101
|
bundle
|
40
102
|
bundle exec rake
|
41
103
|
|
42
|
-
This will run the unit tests in standalone mode
|
43
|
-
|
104
|
+
This will run the unit tests in standalone mode. You can run against a specific Rails version
|
105
|
+
by passing the version name (which should match the name of a subdirectory in test/environments)
|
106
|
+
as an argument to the test:env rake task, like this:
|
107
|
+
|
108
|
+
bundle exec rake test:env[rails60]
|
44
109
|
|
45
110
|
These tests are setup to run automatically in
|
46
|
-
[
|
47
|
-
When you've pushed your changes to GitHub, you can confirm that
|
48
|
-
|
111
|
+
[GitHub Actions](https://github.com/newrelic/newrelic-ruby-agent/actions) under several
|
112
|
+
Ruby implementations. When you've pushed your changes to GitHub, you can confirm that
|
113
|
+
the GitHub Actions test matrix passes for your fork.
|
49
114
|
|
50
115
|
Additionally, our own CI jobs runs these tests under multiple versions of Rails
|
51
116
|
to verify compatibility.
|
@@ -74,15 +139,37 @@ These tests can be run by invoking:
|
|
74
139
|
bundle exec rake test:multiverse
|
75
140
|
|
76
141
|
More details are available in
|
77
|
-
[test/multiverse/README.md](https://github.com/newrelic/
|
142
|
+
[test/multiverse/README.md](https://github.com/newrelic/newrelic-ruby-agent/blob/main/test/multiverse/README.md).
|
143
|
+
|
144
|
+
## Contributor License Agreement
|
145
|
+
|
146
|
+
Keep in mind that when you submit your Pull Request, you'll need to sign the CLA
|
147
|
+
via the click-through using CLA-Assistant. If you'd like to execute our
|
148
|
+
corporate CLA, or if you have any questions, please drop us an email at
|
149
|
+
opensource@newrelic.com.
|
150
|
+
|
151
|
+
For more information about CLAs, please check out Alex Russell’s excellent post,
|
152
|
+
[“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
|
153
|
+
|
154
|
+
## Slack
|
155
|
+
|
156
|
+
We host a public Slack with a dedicated channel for contributors and maintainers
|
157
|
+
of open source projects hosted by New Relic. If you are contributing to this
|
158
|
+
project, you're welcome to request access to the #oss-contributors channel in
|
159
|
+
the newrelicusers.slack.com workspace. To request access, see
|
160
|
+
https://newrelicusers-signup.herokuapp.com/.
|
161
|
+
|
162
|
+
## Explorer's Hub
|
163
|
+
|
164
|
+
New Relic hosts and moderates an online forum where customers can interact with
|
165
|
+
New Relic employees as well as other customers to get help and share best
|
166
|
+
practices. Like all official New Relic open source projects, there's a related
|
167
|
+
Community topic in the New Relic Explorers Hub. You can find this project's
|
168
|
+
topic/threads here:
|
78
169
|
|
79
|
-
|
170
|
+
[Explorer's Hub](https://discuss.newrelic.com/tags/rubyagent)
|
80
171
|
|
81
|
-
|
82
|
-
that you are granting New Relic a non-exclusive, non-revokable, no-cost license
|
83
|
-
to use the code, algorithms, patents, and ideas in that code in our products if
|
84
|
-
we so choose. Fortunately, you also agree the code is provided as-is and you provide no
|
85
|
-
warranties as to its fitness or correctness for any purpose.
|
172
|
+
## And Finally...
|
86
173
|
|
87
174
|
If you have any feedback on how we can make contributing easier, please get in
|
88
175
|
touch at [support.newrelic.com](http://support.newrelic.com) and let us know!
|