Releases: solarwinds/appoptics-apm-ruby
4.0.5
- Add alpine installation
- Fix: Allow naming differences from older versions of restclient, excon, faraday
4.0.4
- tested with Ruby 2.5.0
- new extension 2.0.7 avoids segfault related to concurrency
- Fix: Set defaults for invalid sampling rates and avoid throwing an exception
4.0.3
Fixes:
- noop for rack middleware
- SDK methods don't through exceptions in noop
Background Work:
- better test coverage for noop mode
- updated rdoc comments in appoptics_apm/api. Documentation
for the methods in this folder can be generated with rdoc.
4.0.2
Gem:
This will be published as OS agnostics gem, that goes into noop on unsupported operating systems
Fixes:
make sure custom headers are preserved in RestClient
4.0.0.pre12
renaming: add _apm/APM
- rename AppOptics module to AppOpticsAPM
- rename appoptics folders/gem/files to appoptics_apm
4.0.0.pre11
Sinatra Action name
leave space after http method in Sinatra Action name
4.0.0.pre10
2 fixes to outbound call traces
- add Async=1 to KVs for typhoeus.hydra
- get context after log_entry for header['X-Trace'] in excon
4.0.0.pre9
SQL Sanitize
- enable sql_sanitize by default and adapt tests accordingly
- use new liboboe: Liboboe 2.0.3
4.0.0.pre8
Controller, Action and Transaction Naming
This prerelease is mainly about finding a consistent way to name Controllers and Action across the 4 frameworks: Rails, Sinatra, Padrino, Grape
Controller + Action
The goal is to use:
- Controller or self.class for Controller
- Action or the parameterized route for Action
Transaction Name
This is now always provided as controller.action
It will be down-cased and special characters replaced by data.
Examples from the different frameworks
(Please also check the tests for more examples.)
Rails
Rails follows the MVC pattern.
http://127.0.0.1:8140/hello/15/show
Controller: HelloController
Action: show
TransactionName: HelloController.show
Sinatra
Sinatra does not have actions, so the route from env['sinatra.route']
will be used. It natively includes the http method and we decided not to strip it out.
http://example.org/say/hello/to/world
Controller: SinatraSimple
Action: GET/say/*/to/*
TransactionName: SinatraSimple.GET/say/*/to/*
Padrino
Padrino is similar to Sinatra and we use the route for action.
http://example.org/render/1234567890/what
Controller: SimpleDemo
Action: /render/:id/what
TransactionName: SimpleDemo./render/:id/what
or depending on implementation:
http://example.org/user/12345/product/show/101010
Controller: product
Action: /user/:user_id/product/show/:id
TransactionName: product./user/:user_id/product/show/:id
Grape
Grape will also show route for action.
http://example.org/employee_data/12/nested/34
Controller: GrapeSimple
Action: /employee_data/:id/nested/:child
TransactionName: GrapeSimple./employee_data/:id/nested/:child
prelease 4.0.0.pre7
published a new prerelease gem