我正在尝试从我的应用程序中获取JVM指标,该应用程序运行三个实例,具有三个独立的JVM。我可以在New Relic仪表板上看到我感兴趣的不同数据,在监控 - > JVM选项卡。我也可以通过点击REST API来获取我想要的其中一个JVM的信息:
% 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'
(我已经替换了某些字段的值,但这是我请求的完整形式。)
我得到一个回复,其中包括一长串这样的元素:
<metric name="GC/PS Scavenge" begin="T1" end="T2" app="MYAPP" agent_id="AGENTID">
<field name="time_percentage">0.018822634485032824</field>
</metric>
所有metric
元素都包含相同的agent_id
字段,我从未指定要使用的代理。我怎么能:
答案 0 :(得分:1)
agent_id
可以是特定的JVM实例,虽然您不能同时请求多个代理,但您可以请求单个JVM的度量标准。
您可以通过以下两种方式之一获取JVM的agent_id:
1)对
的API调用https://api.newrelic.com/api/v1/accounts/:account_id/applications/:app_id/instances.xml
2)在New Relic用户界面中浏览到JVM(在选择应用程序后使用右上角的“JVM”下拉列表),然后从URL中获取ID。
ID类似于[account_id]_i2043442
某些数据不可用JVM细分,最值得注意的是,如果agent_id不是应用程序,则对threshold_values.xml
的调用将无效。
V1 API的完整文档:http://newrelic.github.io/newrelic_api/