Following sections provide Ruby agent configuration details.
Node Names for Multi-Process Servers
Each application process running on a server must have a unique App, Tier, and Node tuple. Many Ruby servers (for example Puma, Unicorn) start multiple processes for each application. The AppDynamics Ruby agent handles this by automatically appending an index to additional processes.
To track the index of the processes, a series of nodeindex
files are used. By default, these are located at:
APP_ROOT/tmp/appdynamics/nodeindex
In the event when this path in not writable you can change it by setting nodeindex_path
in config (or APPD_NODEINDEX_PATH
in your environment).
Customize Business Transactions
By default, the agent uses the first two segments of your URL as the name of the Business Transaction (BT). While this gets you started, this may not be an ideal setup for most RESTful Rails applications with URLs like /users/:id
.
To customize the behavior, you can set up an initializer as shown below:
# config/initializers/app_dynamics.rb AppDynamics::BusinessTransactions.define do # Your BT Config here. end
Auto Configuration
BTs can be named automatically (or completely disable it) and also manually by specifying name for specific URL and HTTP method combinations. If a manual name matches, it takes precedence. If auto detection is disabled, unmatched BTs are not logged.
# Disable auto BTs auto false # Change number of segments auto segments: { first: 3 } # First 3 segments auto segments: { last: 1 } # Last 1 segment # Use full URL auto full: true # Dynamic BT names auto dynamic: { param: :search } # /one/two/three?search=query => /one/two.query auto segments: { first: 1 }, dynamics: { param: :search} # /one/two/three?search=query => /one.query auto dynamic: { header: "Content-Type" } # CONTENT_TYPE=application/json /one/two/three.json => /one/two.application/json auto dynamic: :method # POST /one/two/three => /one/two.POST auto dynamic: :host # http://example.com/one/two/three => /one/two.example.com auto dynamic: :origin # HTTP_ORIGIN=http://other.com http://example.com/one/two/three => /one/two.other.com
Manual Configuration
A manual Business Transaction is specified as a name mapping to a path matcher which can be a String (for an exact match) or a Regex or an array of either type.
bt "users" => "/users" bt "admin" => %r{^/admin/?} bt "companies" => ["/company_list", "/companies", %r{/company/\d+}]
You can also specify an HTTP method or list of methods to limit only requests of that type. Available options are :
:get
:post
:put
:patch
:delete
bt "new_user" => "/users", method: :post bt "update_user" => "/users", method: [:put, :patch]
Finally, more complex definitions can be made using the block API. Inside of the block, list of path matchers is specified for a specific HTTP method:
bt "api" do get "/users" post "/users", %r{.+\.json$} end
80 Comments
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
1
Anonymous
1
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
Anonymous
1



























'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'Anonymous
Anonymous
Anonymous
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
1
Anonymous
Add Comment