• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

REST API v2からNerdGraphへの移行

このガイドは、New Relic REST API v2からNerdGraph GraphQL APIへの移行に役立ちます。NerdGraphはNew Relicが推奨するAPIであり、単一の統合されたエンドポイント、正確なデータ取得、および強力な型付けを提供します。

重要

The New Relic REST API v2 (including Alerts endpoints) and the Deployments v0 API will reach end of life on July 31, 2027. After this date, these endpoints will no longer be available. Migrate your integrations to NerdGraph before that date.

ヒント

このガイドのクエリは出発点です — REST v2エンドポイントの直接的な代替ではありません。どのベースクエリでも、不要なフィールドを省略したり、元のREST呼び出しでは利用できなかった可能性のあるフィールドを追加したりできます。"outline"オブジェクトのコレクションと詳細フィールドの比較など、場合によっては、フィールドを直接完全に一致させることができないことがあります。

あなたが始める前に

ユーザーAPIキーを取得する

REST呼び出しを行うためにすでに使用しているユーザーAPIキーを再利用できますが、REST v2 APIはユーザーAPIキーの作成に使用されたアカウントに基づいて想定を行っていたことに注意してください。NerdGraphは同様の想定を行いません。

NerdGraphエンドポイント

  • https://api.newrelic.com/graphql
  • https://api.eu.newrelic.com/graphql

インタラクティブに探索

インラインドキュメントとオートコンプリートを備えたNerdGraph API Explorerを使用して、クエリを構築およびテストします。

エンティティGUID

NerdGraphでは通常、数値のアプリケーションIDの代わりにエンティティGUID(グローバル一意識別子)を使用します。エンティティ検索クエリを使用して、REST APIのアプリケーションIDからエンティティGUIDを検索できます(アプリケーションを参照してください)。Change Tracking (変更追跡機能)は、appIdのみで引き続き実行できます。

認証

REST API v2:

bash
$
curl -X GET 'https://api.newrelic.com/v2/applications.json' \
>
-H "Api-Key: $USER_API_KEY"

NerdGraph:

bash
$
curl -X POST 'https://api.newrelic.com/graphql' \
>
-H 'Content-Type: application/json' \
>
-H "Api-Key: $USER_API_KEY" \
>
-d '{"query": "{ actor { user { email } } }"}'

詳細については、NerdGraphの概要を参照してください。

主な違い

機能

REST API v2

NerdGraph(GraphQL)

プロトコル

複数のRESTエンドポイント

単一のGraphQLエンドポイント

認証

ユーザーAPIキー(

Api-Key

または

X-Api-Key

ヘッダー)

ユーザーAPIキー(

Api-Key

ヘッダー)、システムアイデンティティ

データ取得

固定されたレスポンス形状

指定されたクエリによって決定されるレスポンスの形状

識別子

数値ID(例:アプリケーションID)

アカウントには整数、アプリケーションにはエンティティGUIDなど。

リストと詳細の比較

リストエンドポイントで返される完全なオブジェクト

多くのコレクションフィールドには、"Outline"オブジェクトのみが含まれます。詳細を取得するには、単一の項目をクエリする必要がある場合があります。

ページ付け

ページベース(

?page=N

カーソルベースのページネーション

メトリックデータ

専用のメトリクスエンドポイント

actor.nrql

経由のNRQLクエリ、または

actor.account.nrql

レート制限

キーごとの制限

同時実行とスループットの制限事項

アプリケーション

アプリケーションのリスト

REST API v2: GET /v2/applications.json

NerdGraph:APMアプリケーションを見つけるには、entitySearchを使用します。結果を特定のアカウントに絞り込むには、accountId = YOUR_ACCOUNT_IDを追加します。accountIdを提供する必要はなく、AND domainId = <ID of app>を追加することで特定のアプリケーションを検索できます。

{
actor {
entitySearch(
query: "domain = 'APM' AND type = 'APPLICATION' AND accountId = YOUR_ACCOUNT_ID"
) {
results {
entities {
guid
name
reporting
alertSeverity
... on ApmApplicationEntityOutline {
applicationId
language
apmSummary {
responseTimeAverage
throughput
errorRate
apdexScore
}
}
}
nextCursor
}
}
}
}

名前でフィルタリングするには(filter[name]に相当):

{
actor {
entitySearch(
query: "domain = 'APM' AND type = 'APPLICATION' AND accountId = YOUR_ACCOUNT_ID AND name LIKE 'MyApp'"
) {
results {
entities {
guid
name
}
}
}
}
}

ヒント

REST API GET /v2/applications.jsonは、データの報告を停止したアプリケーションや削除されたアプリケーションを返す場合があります。NerdGraph entitySearchは、エンティティプラットフォームでインデックス付けされたエンティティのみを返します。NerdGraphからの結果が少ない場合、報告を行っていない、または長期間非アクティブなアプリケーションが原因である可能性があります。

アプリケーションの表示

REST API v2: GET /v2/applications/{id}.json

NerdGraph: エンティティGUIDでフェッチする:

{
actor {
entity(guid: "YOUR_ENTITY_GUID") {
name
alertSeverity
reporting
... on ApmApplicationEntity {
applicationId
language
apmSummary {
responseTimeAverage
throughput
errorRate
apdexScore
hostCount
instanceCount
}
settings {
apdexTarget
serverSideConfig
}
}
}
}
}

ヒント

REST APIアプリケーションIDからエンティティGUIDを見つけるには:

{
actor {
entitySearch(query: "domainId = 'APP_ID' AND domain = 'APM'") {
results {
entities {
guid
name
}
}
}
}
}

アプリケーション設定を更新する

REST API v2: PUT /v2/applications/{id}.json

NerdGraph:

mutation {
agentApplicationSettingsUpdate(
guid: "YOUR_ENTITY_GUID"
settings: {
alias: "My App Display Name"
apmConfig: { apdexTarget: 0.5, useServerSideConfig: true }
}
) {
alias
guid
apmSettings {
apdexTarget
useServerSideConfig
}
}
}

ヒント

利用可能な設定は他にも多数あります。完全なリストについては、NerdGraph API Explorerのインラインドキュメントを参照してください。

アプリケーションを削除する

REST API v2: DELETE /v2/applications/{id}.json

NerdGraph:

mutation {
agentApplicationDelete(guid: "YOUR_ENTITY_GUID") {
success
}
}

詳細については、NerdGraphエンティティチュートリアルおよびAPM設定チュートリアルを参照してください。

アプリケーションメトリクスデータ

メトリクス名のリスト

REST API v2: GET /v2/applications/{app_id}/metrics.json

NerdGraph:利用可能なメトリクス名を一覧表示するには、NRQLクエリを使用します:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT uniques(metricTimesliceName) FROM Metric WHERE appId = YOUR_APP_ID AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX"
) {
results
}
}
}

または、アプリケーション名でフィルタリングします:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT uniques(metricTimesliceName) FROM Metric WHERE appName = 'YourAppName' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX"
) {
results
}
}
}

ヒント

REST APIは、時間枠に関係なく、過去に認識されたすべてのメトリクス名を、各メトリクスの利用可能な値のタイプ(たとえば、average_response_timecall_countcalls_per_minute)とともに返します。NRQLクエリは、SINCEの期間内にデータを報告したメトリクスのみを返します — より多くのメトリクス名を見つけるには、期間を延長してください(たとえば、SINCE 1 WEEK AGO)。NerdGraphには、メトリクスごとの値のタイプをリストするための同等の機能はありません。代わりに、以下のサマリーマッピングテーブルを使用する(またはリンクをたどってさらに多くのマッピングを参照する)ことで、REST APIの値の名前をNRQL関数に変換してください — すべてのタイムスライスメトリクスは同じセットの集計関数をサポートしています。

メトリックデータの取得

REST API v2: GET /v2/applications/{app_id}/metrics/data.json?names[]=HttpDispatcher&values[]=average_call_time&values[]=call_count

NerdGraph:適切な集約関数とともにNRQLクエリを使用します。TIMESERIESを追加して、間隔ごとのデータポイント(REST APIのtimeslice配列に相当)を取得します:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT count(newrelic.timeslice.value) AS call_count, average(newrelic.timeslice.value) * 1000 AS average_call_time FROM Metric WHERE appId = YOUR_APP_ID AND metricTimesliceName = 'HttpDispatcher' SINCE 30 MINUTES AGO TIMESERIES"
) {
results
}
}
}

ヒント

TIMESERIESがない場合、NRQLは時間範囲全体に対する単一の集計値を返します。REST APIは、デフォルトで1分ごとのタイムスライスを返します。REST APIのデフォルトの粒度に合わせるには、TIMESERIES 1 minuteを追加します。

REST APIのメトリクス値からNRQL関数へのマッピング

REST APIの値

NRQL関数

average_response_time

average(newrelic.timeslice.value) * 1000

calls_per_minute

rate(count(newrelic.timeslice.value), 1 minute)

call_count

count(newrelic.timeslice.value)

min_response_time

min(newrelic.timeslice.value) * 1000

max_response_time

max(newrelic.timeslice.value) * 1000

average_exclusive_time

average(newrelic.timeslice.value['totalExclusive'] / newrelic.timeslice.value['count']) * 1000

average_value

average(newrelic.timeslice.value)

total_call_time_per_minute

rate(sum(newrelic.timeslice.value), 1 minute)

requests_per_minute

rate(count(newrelic.timeslice.value), 1 minute)

standard_deviation

stddev(newrelic.timeslice.value) * 1000

error_count

count(newrelic.timeslice.value)

errors_per_minute

rate(count(newrelic.timeslice.value), 1 minute)

throughput

rate(count(newrelic.timeslice.value), 1 second)

as_percentage

average(newrelic.timeslice.value) * 100

詳細については、メトリクスAPIの概要メトリクスクエリガイド、およびメトリックタイムスライスクエリをNRQLに移行するをご覧ください。

アプリケーションのホストとインスタンス

アプリケーションホストの一覧表示

REST API v2: GET /v2/applications/{app_id}/hosts.json

NerdGraph: ホストレベルのデータをクエリするにはNRQLを使用します:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT uniqueCount(host) FROM Transaction WHERE appName = 'YourAppName' SINCE 1 hour ago FACET host"
) {
results
}
}
}

ヒント

FROM Transactionのアプローチでは、SINCEの期間内にトランザクションを処理したホストのみが返されます。

アプリケーションホスト/インスタンスのメトリクスデータ

REST API v2: GET /v2/applications/{app_id}/hosts/{host_id}/metrics/data.json

NerdGraph:NRQLクエリをホストまたはエージェントインスタンスでフィルタリングします:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT average(newrelic.timeslice.value) * 1000 AS avg_response_time FROM Metric WHERE appName = 'YourAppName' AND host = 'your-host.example.com' AND metricTimesliceName = 'HttpDispatcher' SINCE 30 MINUTES AGO"
) {
results
}
}
}

デプロイメント

デプロイメントの一覧表示

REST API v2: GET /v2/applications/{app_id}/deployments.json

NerdGraph:NRQLを介してデプロイメントをクエリします:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT eventType(), deploymentId or changeTrackingId AS 'id', * FROM ChangeTrackingEvent, Deployment WHERE (eventType() = 'Deployment' OR (eventType() = 'ChangeTrackingEvent' AND category = 'Deployment')) AND entity.guid = 'YOUR_ENTITY_GUID' SINCE 1 WEEK AGO LIMIT 100"
) {
results
}
}
}

デプロイメントの作成

REST API v2: POST /v2/applications/{app_id}/deployments.json

NerdGraph: changeTrackingCreateEventミューテーションを使用します。

mutation {
changeTrackingCreateEvent(
changeTrackingEvent: {
entitySearch: {
query: "name = 'YOUR_ENTITY_NAME' and accountId = YOUR_ACCOUNT_ID"
}
categoryAndTypeData: {
kind: { category: "DEPLOYMENT", type: "BASIC" }
categoryFields: {
deployment: {
version: "1.2.3"
changelog: "Fixed authentication bug"
commit: "abc123def456"
}
}
}
description: "Production deployment of auth fix"
shortDescription: "user deployer@example.com deployed version 1.2.3 to environment: commerce_prod"
user: "deployer@example.com"
customAttributes: {
cloud_vendor: "vendor_name"
region: "us-east-1"
environment: "commerce_prod"
}
}
) {
changeTrackingEvent {
changeTrackingId
timestamp
user
description
entity {
guid
domain
name
}
customAttributes
}
}
}

ヒント

他のいくつかのNerdGraph操作と同様に、changeTrackingCreateEvententitySearchを受け入れるため、REST APIからの最も簡単な移行パスになります。nameだけでなく、entityGuidがある場合はでも検索できます。利用可能なすべてのフィールドについては、NerdGraphを使用した変更の追跡をご覧ください。

デプロイメントの削除

REST API v2: DELETE /v2/applications/{app_id}/deployments/{id}.json

NerdGraph: NerdGraphには、デプロイメントを直接削除するミューテーションはありません。デプロイメント記録は、不変のChange Tracking (変更追跡機能)イベントです。

詳細については、NerdGraphを使用した変更追跡を参照してください。

キートランザクション

キートランザクションを一覧表示する

REST API v2: GET /v2/key_transactions.json

NerdGraph:KEY_TRANSACTIONタイプでエンティティ検索を使用します。特定のアカウントにスコープを設定するには、accountIdを追加します:

{
actor {
entitySearch(
query: "type = 'KEY_TRANSACTION' AND accountId = YOUR_ACCOUNT_ID"
) {
results {
entities {
guid
name
reporting
alertSeverity
}
nextCursor
}
}
}
}

ヒント

KeyTransactionEntityOutlineタイプには、レスポンスタイムやスループットなどのサマリーメトリクスは直接含まれていません。キートランザクションのパフォーマンスデータを取得するには、以下の完全なエンティティクエリを使用するか、キートランザクションのメトリクス名に対してNRQLクエリを実行します。

キートランザクションを表示する

REST API v2: GET /v2/key_transactions/{id}.json

NerdGraph:

{
actor {
entity(guid: "KEY_TRANSACTION_ENTITY_GUID") {
name
... on KeyTransactionEntity {
apdexTarget
metricName
application {
guid
entity {
name
}
}
}
}
}
}

同等のパフォーマンスメトリクス(たとえば、スループット)を取得するには、キートランザクションのメトリクス名を指定してNRQLクエリを使用します:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT average(newrelic.timeslice.value) * 1000 AS responseTimeAverage, rate(count(newrelic.timeslice.value), 1 minute) AS throughput FROM Metric WHERE entity.guid = 'ENTITY_GUID' SINCE 30 minutes AGO TIMESERIES"
) {
results
}
}
}

モバイルアプリケーション

モバイルアプリケーションの一覧表示

REST API v2: GET /v2/mobile_applications.json

NerdGraph:

{
actor {
entitySearch(
query: "domain = 'MOBILE' AND type = 'APPLICATION' AND accountId = YOUR_ACCOUNT_ID"
) {
results {
entities {
guid
name
reporting
... on MobileApplicationEntityOutline {
applicationId
mobileSummary {
appLaunchCount
crashCount
crashRate
httpErrorRate
httpRequestCount
httpRequestRate
httpResponseTimeAverage
mobileSessionCount
networkFailureRate
usersAffectedCount
}
}
}
nextCursor
}
}
}
}

モバイルアプリケーションを表示する

REST API v2: GET /v2/mobile_applications/{id}.json

NerdGraph:

{
actor {
entity(guid: "MOBILE_APP_ENTITY_GUID") {
name
... on MobileApplicationEntity {
applicationId
mobileSummary {
appLaunchCount
crashCount
crashRate
httpErrorRate
httpRequestCount
httpResponseTimeAverage
mobileSessionCount
networkFailureRate
usersAffectedCount
}
}
}
}
}

ヒント

REST APIモバイルアプリケーションIDからエンティティGUIDを見つけるには:

{
actor {
entitySearch(query: "domainId = 'MOBILE_APP_ID' AND domain = 'MOBILE'") {
results {
entities {
guid
name
}
}
}
}
}

モバイルアプリケーションのメトリクスデータ

REST API v2: GET /v2/mobile_applications/{id}/metrics/data.json

NerdGraph:モバイルメトリクスデータをクエリするには、NRQLを使用します:

{
actor {
nrql(
accounts: [YOUR_ACCOUNT_ID]
query: "SELECT average(duration) FROM Mobile WHERE appName = 'YourMobileApp' SINCE 1 HOUR AGO TIMESERIES"
) {
results
}
}
}

モバイルアプリケーションの作成

REST API v2: POST /v2/mobile_applications.json

NerdGraph:agentApplicationCreateMobileミューテーションを使用します:

mutation {
agentApplicationCreateMobile(
accountId: YOUR_ACCOUNT_ID
name: "My New Mobile App"
) {
accountId
applicationToken
guid
name
}
}

ヒント

レスポンスには、アプリケーションでモバイルエージェントを構成するために必要なapplicationTokenが含まれています。guidは、後続のNerdGraphクエリ用のエンティティGUIDです。

詳細については、モバイル設定チュートリアルを参照してください。

ブラウザ アプリケーション

Browserアプリケーションのリスト

NerdGraph:

{
actor {
entitySearch(
query: "domain = 'BROWSER' AND type = 'APPLICATION' AND accountId = YOUR_ACCOUNT_ID"
) {
results {
entities {
guid
name
reporting
... on BrowserApplicationEntityOutline {
applicationId
browserSummary {
ajaxRequestThroughput
ajaxResponseTimeAverage
jsErrorRate
pageLoadThroughput
pageLoadTimeAverage
spaResponseTimeAverage
}
}
}
nextCursor
}
}
}
}

ヒント

数値のアプリケーションIDからブラウザアプリケーションのエンティティGUIDを見つけるには:

{
actor {
entitySearch(query: "domainId = 'BROWSER_APP_ID' AND domain = 'BROWSER'") {
results {
entities {
guid
name
}
}
}
}
}

スタンドアロンのブラウザアプリケーションを作成する

REST API v2:POST /v2/browser_applications.json(コピー/ペーストによるインストール方法)

NerdGraph:agentApplicationCreateBrowserミューテーションを使用します:

mutation {
agentApplicationCreateBrowser(
accountId: YOUR_ACCOUNT_ID
name: "My New Browser App"
settings: {
cookiesEnabled: true
distributedTracingEnabled: true
loaderType: SPA
}
) {
guid
name
settings {
cookiesEnabled
distributedTracingEnabled
loaderType
}
}
}

ヒント

settingsパラメーターはオプションです。省略した場合、デフォルトが使用されます。loaderTypeのオプションは、SPA(デフォルト)、PRO、およびLITEです。

APMアプリケーションでブラウザ監視を有効にする

REST API v2: 既存のAPMアプリでのブラウザ監視の有効化は、アプリケーション設定を通じて行われていました。

NerdGraph: APMアプリケーションのエンティティGUIDとともにagentApplicationEnableApmBrowserミューテーションを使用します:

mutation {
agentApplicationEnableApmBrowser(
guid: "YOUR_APM_ENTITY_GUID"
settings: {
cookiesEnabled: true
distributedTracingEnabled: true
loaderType: SPA
}
) {
name
settings {
cookiesEnabled
distributedTracingEnabled
loaderType
}
}
}

ヒント

これにより、APMアプリケーションによって提供されるページへのBrowserエージェントの自動インジェクションが有効になります。settingsパラメーターはオプションです。guidは、ブラウザのエンティティGUIDではなく、APMアプリケーションのエンティティGUIDである必要があります。ローカル設定を使用してリアルユーザー監視を制御している場合、新しいAPMアプリケーションでは多くの場合これは必要ありません。

詳細については、Browser設定チュートリアルをご覧ください。

アラート

チャンネルの一覧

REST API v2: GET /v2/alerts_channels.json

NerdGraph:NerdGraphにはチャネルに対する直接的なクエリはありません。通知ワークフローの使用に移行してください。

{
actor {
account(id: YOUR_ACCOUNT_ID) {
aiWorkflows {
workflows {
entities {
guid
name
workflowEnabled
destinationConfigurations {
channelId
name
type
}
destinationsEnabled
lastRun
}
}
}
}
}
}

イベントのリスト

REST API v2: GET /v2/alerts_events.json

NerdGraph:

インシデントの一覧表示

REST API v2: GET /v2/alerts_incidents.json

NerdGraph:

{
actor {
account(id: YOUR_ACCOUNT_ID) {
aiIssues {
issues {
issues {
account {
id
}
activatedAt
closedAt
conditionFamilyId
conditionName
description
deepLinkUrl
entityGuids
entityNames
}
}
}
}
}
}

違反のリスト

REST API v2: GET /v2/alerts_violations.json

NerdGraph:aiIssuesインシデントクエリを使用します:

{
actor {
account(id: YOUR_ACCOUNT_ID) {
aiIssues {
incidents(
filter: {}
timeWindow: { startTime: 1779905700000, endTime: 1779905800000 }
) {
incidents {
account {
id
name
}
closedAt
createdAt
description
entityGuids
entityNames
entityTypes
incidentId
issueId
priority
state
timestamp
title
updatedAt
}
}
}
}
}
}
Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.