New Relic Elixir Agent v1.4.0 NewRelic View Source
New Relic Agent - Public API
Link to this section Summary
Functions
Report a custom attribute on the current transaction
You must manually instrument outgoing HTTP calls to connect them to a Distributed Trace
Will gracefully complete and shut down the agent harvest cycle
Report a Custom event to NRDB
To get detailed information about a particular process, you can install a Process sampler. You must tell the Agent about your process from within the process
Store information about the type of work the current span is doing
Set the name of the current transaction
Link to this section Functions
Report a custom attribute on the current transaction
NewRelic.add_attributes(foo: "bar")
You must manually instrument outgoing HTTP calls to connect them to a Distributed Trace.
The agent will automatically read request headers and detect if the request is a part of a Distributed Trace, but outgoing requests need an extra header:
dt_header_payload = NewRelic.create_distributed_trace_payload(:http)
HTTPoison.get(url, ["x-api-key": "secret"] ++ dt_header_payload)
Notes:
- Call
NewRelic.create_distributed_trace_payload
immediately before making the request since calling the function marks the “start” time of the request.
Will gracefully complete and shut down the agent harvest cycle.
To ensure a harvest at shutdown, you can add a hook to your application:
System.at_exit(fn(_) ->
NewRelic.manual_shutdown()
end)
Report a Custom event to NRDB.
NewRelic.report_custom_event("EventType", %{"foo" => "bar"})
To get detailed information about a particular process, you can install a Process sampler. You must tell the Agent about your process from within the process.
For a GenServer
, this function call should be made in the init
function:
defmodule ImportantProcess do
use GenServer
def init(:ok) do
NewRelic.sample_process
{:ok, %{}}
end
end
Once installed, the agent will report ElixirSample
events with:
category = "Process"
message_queue_length
reductions
memory_kb
Store information about the type of work the current span is doing.
Options:
:generic, custom: attributes
:http, url: url, method: method, component: component
:datastore, statement: statement, instance: instance, address: address, hostname: hostname, component: component
Set the name of the current transaction.
The first segment will be treated as the Transaction namespace, and commonly contains the name of the framework.
In the following example, you will see /custom/transaction/name
in the Transaction list.
NewRelic.set_transaction_name("Plug/custom/transaction/name")