pkaeding
pkaeding

Reputation: 37633

How can I specify the jvm agent id when querying the metrics on the New Relic v1 REST API?

I am trying to get JVM metrics from my application, which runs three instances, with three separate JVMs. I can see the different data that I am interested in in the New Relic dashboard, on the Monitoring -> JVMs tab. I can also get the information I want for one of those JVMs, by hitting the REST API like so:

% curl -gH "x-api-key:KEY" 'https://api.newrelic.com/api/v1/applications/APPID/data.xml?metrics%5B%5D=GC%2FPS%20Scavenge&field=time_percentage&begin=T1&end=T2'

(I've replaced the values of some fields, but this is the full form of my request.)

I get a response including a long list of elements like this:

  <metric name="GC/PS Scavenge" begin="T1" end="T2" app="MYAPP" agent_id="AGENTID">
    <field name="time_percentage">0.018822634485032824</field>
  </metric>

All of the metric elements include the same agent_id fields, and I never specified which agent to use. How can I either:

Upvotes: 1

Views: 346

Answers (1)

Nočnica
Nočnica

Reputation: 787

agent_id can be a particular JVM instance, and while you can't request for multiple agents at once you can request metrics for a single JVM.

You can get the JVM's agent_id in one of two ways:

1) an API call to

https://api.newrelic.com/api/v1/accounts/:account_id/applications/:app_id/instances.xml

2) browse to the JVM in the New Relic user interface (use the 'JVM' drop-down at the top right after you select your app), then grab the ID from the URL.

The ID will look something like [account_id]_i2043442

Some data is not available broken down by JVM, most notably a call to threshold_values.xml won't work if the agent_id isn't an application.

full documentation of the V1 API: http://newrelic.github.io/newrelic_api/

Upvotes: 1

Related Questions