Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement prepend instrumentation for Sinatra #626

Merged
merged 20 commits into from
Apr 5, 2021

Conversation

tannalynn
Copy link
Contributor

Before contributing, please read our contributing guidelines and code of conduct.

Overview

Updated Sinatra instrumentation to have both prepend and chain options hooked up and defaults to prepend.

Related Github Issue

closes #595

@tannalynn tannalynn added this to the 7.0.0 Release Target milestone Mar 22, 2021
@tannalynn tannalynn added this to In progress in Ruby Engineering Board via automation Mar 22, 2021
@github-actions
Copy link

PR review checklist:

  • Perform code review
  • Add performance label
  • Perform appropriate level of performance testing
  • Confirm all checks passed
  • Add version label prior to acceptance

@tannalynn tannalynn requested a review from mwlang March 30, 2021 21:56
lib/new_relic/agent/instrumentation/padrino/prepend.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/instrumentation/sinatra.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/instrumentation/sinatra.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/instrumentation/sinatra.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/instrumentation/sinatra/chain.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/instrumentation/sinatra/prepend.rb Outdated Show resolved Hide resolved
Copy link
Contributor

@mwlang mwlang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid!

@mwlang mwlang merged commit f2bc830 into prepend_instrumentation Apr 5, 2021
Ruby Engineering Board automation moved this from In progress to Done/Pending Release Apr 5, 2021
@mwlang mwlang deleted the sinatra_prepend branch April 5, 2021 15:07
mwlang pushed a commit that referenced this pull request Apr 5, 2021
* temp commit- added newline

* enhanced multiverse to run prepend and chain instrumentation methods

* support chaining and prepending instrumentation in the dependency manager; support new config options

* handle our new instrumentation_value_of config helper method in the orphan config tests

* removed unused variable assignment -- was throwing warnings that broke 2.7 runs

* ability to override instrumentation's config key name

* implemented Grape prepend

* improving the multiverse test suite; added logging for instrumenting to dependency logic

* fixed typo with configured_with

* fixed Net::HTTP instrumentation

* temp commit- added newline

* enhanced multiverse to run prepend and chain instrumentation methods

* support chaining and prepending instrumentation in the dependency manager; support new config options

* handle our new instrumentation_value_of config helper method in the orphan config tests

* removed unused variable assignment -- was throwing warnings that broke 2.7 runs

* ability to override instrumentation's config key name

* improving the multiverse test suite; added logging for instrumenting to dependency logic

* fixed typo with configured_with

* fixed Net::HTTP instrumentation

* updating npm dependencies; fixing older mysqlclient installs

* removed ruby 2.0 and 2.1 from CI

* replace jruby CI exclusions

* set up prepend for redis

* added prepend instrumentation fot HTTPClient (#606)

* DRY implementation for HTTPClient

* Implement prepend instrumentation for Resque (#615)

* set up prepend for resque

* DRY resque tracing

Co-authored-by: Michael Lang <mlang@newrelic.com>

* DRY redis; consistent resque

* Even more DRY implementation of Redis

* fixed bug in namespace unit test; rekeyed the redis instrumentation configuration key to just 'redis'

* deprecate the disabled redis config options

* fixed the scanning for instrumentation_value_of in configuration file

* implements Rack prepend

* Using String now for the rack instrumentation settings

* DRY the track_deferred_detection implementation

* deprecated Mongo 1.x support

* full namespace for Deprecator

* removed redundant check on disabled instrumentation

* Implement prepend instrumentation for Typhoeus (#612)

* update typhoeus instrumentation
and add prepend

* more DRY implementation; changed naming to match other instrumentation conventions

Co-authored-by: Michael Lang <mlang@newrelic.com>

* add check to remove deprecated configs also

* WIP: getting prepend to work

* finishes memcache refactor for prepend and chain instrumentation

* configuration clean up; removed redundant logged instrumentation messages

* renamed memcached test folder to memecache to match library naming

* Deprecate legacy excon instrumentation (#605)

* deprecate legacy excon instrumentation

* added check for allowed_by_config for excon

* removed unneeded check

* added new instrumentation config

* added version to deprecate message

* added deprecated method to old config

* added deprecated flag to old disable_excon setting; full namespace on Deprecator

Co-authored-by: Michael Lang <mlang@newrelic.com>

* Implement prepend instrumentation for Curb (#577)

* set up prepend for curb

* updated config option

* update test for both chain and prepend

* update curb config

* updated curb intrumentation

* added missing file header

* updated chain instrumentation for curb

* added allowed_by_config? check for curb

* made instrumentation more DRY

* dprecating dalli_cas setting

* Implement prepend instrumentation for Rake (#611)

* reset up chain instrument for rake

* added prepend

* uncomment prepend for rake tests

* updated config name

* DRY implementation for Rake instrumentation

Co-authored-by: Michael Lang <mlang@newrelic.com>

* Implement prepend instrumentation for HTTP gem (#600)

* add prepend for HTTP

* updated config option for http instrumentation

* update instrumentation for http gem

* updated httprb instrumentation

* renamed http files to httprb; consistent referencing of httprb; DRY implementation

* added deprecated to the description for old config

* increase timeout for CI

Co-authored-by: Michael Lang <mlang@newrelic.com>

* Implement prepend instrumentation for Delayed Job (#603)

* added prepend for delayed job

* updated delayed job instrumentation

* add dynamic_name for config

* changed second prepend to be 2.0 friendly

* removed depends on for old config

* updated instrumentation to be DRY

* removed old activemerchant version

* removed delayed job 2

* removed old versions of sidekiq

* removed capistrano < 3.11

* removed old activemerchant versions < 1.62.0

* removed old versions of excon < 0.64.0

* removed testing for http < 2.2.2

* removed support for json versions < 2.2.0

* undo cap2 removal from multiverse

* removed old versions of bunny and added newest

* removed older redis versions

* updated supported resque versions in test suite

* removed old sequel versions

* updated tested resque versions

* updated tested sinatra versions

* updated typhoeus versions being tested

* removed older padrino versions being tested

* add sidekiq version

* newer resque versions only on 2.3+

* sinatra 2.1 on ruby 2.3+

* update sinatra rack versions

* gated i18n version when on jruby
due to jruby incompatibility with newer i18n

* updated tested gems

* removed padrino 0.13 from test suite

* undo grape changes

* Implement prepend instrumentation for Bunny (#599)

* default prepend to true

* add prepend for bunny

* fox for bunny prepend

* changed bunny prepend to module

* updated bunny testing for chain and prepend

* updated bunny

* update bunny instrumentation

* fix require_relative

* reset default for config not related to bunny

* added config check for bunny

* DRYed up bunny instrumentation

* fix leftover end

* fix missing args

* cleaned up and simplified

Co-authored-by: Michael Lang <mlang@newrelic.com>

* Implement prepend instrumentation for Sinatra (#626)

* set up chain for sinatra

* update sinatra instrumentation

* added prepend file

* drying up prepend changes

* most tests passing

* got prepend working

* updated sinatra tests

* updated tested versions

* fix for sintra prepend build

* updated unit tests for sintra instrumentation

* updated deferred_instrumentation suite for sinatra

* WIP added padrino

* fix for padrino test app

* changes based on code review

* untangled includes/extends and simplify for better readability

* fixed weird unintialized constant error

* fix for unit test failures

Co-authored-by: Michael Lang <mlang@newrelic.com>

* fix test expectation

* DRYed up the net_http instrumentation

Co-authored-by: Michael Lang <mlang@newrelic.com>
Co-authored-by: Aaron Huntsman <738047+amhuntsman@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Ruby Engineering Board
  
Code Complete/Done
Development

Successfully merging this pull request may close these issues.

Implement prepend instrumentation for sinatra Implement prepend instrumentation for Padrino
2 participants