Infrastructure REST APIを使用して、アラート条件の追加、更新、削除、一覧表示を行います。Infrastructure UI を使用して、個別のアラート条件を管理することもできます。
InfrastructureアラートのREST API呼び出しは、APIエクスプローラー では利用できません。
APIを使用する理由
例
一貫性
InfrastructureモニタリングUIで同じ条件を毎回設定せずに、すべてのクラスタに同じ一連の条件を定義します。 複数の条件をUIで個別に更新することなく、迅速に管理します。 柔軟性
任意のホストグループに対して条件を作成できます。 オフラインになったホストに対する条件をいつでも無効化、あるいは削除できます。 排他的なフィルタリング(たとえば、environment NOT LIKE x
)を使用して条件を作成します。詳細については、排他的なフィルタリングに関するこの記事 を参照してください。 AWS Cloud Integrationsについては、まだAWSから送信されていない属性を選択する。 where_clause
を使用してセカンダリまたはターシャリメトリックに制限を指定することによって、複合アラート条件を作成します。NRQLアラート条件の500ファセット制限を上回る。 信頼性
要件Infrastructure REST APIを使用するには、次の情報が必要です。
Infrastructure API呼び出しの使用ここでは、Infrastructureアラート条件用の基本的なcURLコマンドとその応答についていくつか説明します。条件のタイプに応じて、コールで提供されたDATA
情報は、POST(追加)とPUT(更新)コールで異なります。
data
ブロックで使用される各属性の定義は、定義 セクションに記載されています。
GET Infrastructure条件 Infrastructure条件のリストのGET または特定のInfrastructure条件のGET を行うことができます。以下は、Infrastructure条件をリストするためのヒントです。
ページ付けには、limit
(ページあたりのレコード数)とoffset
(スキップするレコード数)パラメーターを使用します。デフォルトで、ページあたりのレコード数は50件、offset
は0(レコードをスキップしない)から始まります。 結果を特定のポリシーに絞り込むには、policy_id
を使用します。 ヒント GETレスポンスをPUTまたはPOSTの入力用テンプレートとして使用する場合は、必ずcreated_at_epoch_millis
、updated_at_epoch_millis
およびid
情報を削除してください。
Infrastructure条件のリストのGET curl -v -X GET --header "Api-Key: $API_KEY " "https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111"
例:条件一覧を入手する 応答には、サンプルポリシーの3つの条件のうち2つが表示されています(読みやすくするため、フォーマット・切り詰めを行っています)。
Content-Type: application/json
"type":"infra_process_running",
"name":"Java is running",
"where_clause":"(`hostname` LIKE '%cassandra%')",
"created_at_epoch_millis":1490996713872,
"updated_at_epoch_millis":1490996713872,
"process_where_clause":"(`commandName` = 'java')"
"created_at_epoch_millis": 1501704525462,
"fullHostname": "Production_1"
"name": "PROD - Host Machine's Agent Not Responding ....",
"type": "infra_host_not_reporting",
"updated_at_epoch_millis": 1504879191220
50件の上限を超えたInfrastructure条件10件分のリストを取得するには:
curl -v -X GET --header "Api-Key: $API_KEY " "https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111&offset=50&limit=10"
特定のInfrastructure条件のGET 単一のInfrastructure条件についての情報を取得する場合:
curl -v -X GET --header "Api-Key: $API_KEY " "https://infra-api.newrelic.com/v2/alerts/conditions/condition-id"
例:特定の条件を入手する 応答(読みやすくするため、フォーマットしています):
Content-Type: application/json
"type":"infra_host_not_reporting",
"created_at_epoch_millis":1490981583580,
"updated_at_epoch_millis":1490981583580,
Infrastructure条件を作成(POST)する 重要 新しい条件を追加(POST)する際は、"id":
を含めないでください。条件の作成時に生成されます。
Infrastructure条件を追加する際は、次の基本的なcURLコマンドを使用します。
curl -X POST 'https://infra-api.newrelic.com/v2/alerts/conditions' -H 'Api-Key:$API_KEY ' -i -H 'Content-Type: application/json' -d '{"data":{DATA object details}}'
追加しているInfrastructure条件のタイプについては、DATA
オブジェクト(-d \
セクション)に詳細情報を含めてください。
Infrastructure条件を更新(PUT)する Infrastructure条件を更新する際は、変更が必要なフィールドを含めるだけで十分です。APIは、欠落しているフィールドの既存の値を保持します。
重要 条件type
を変更したい場合は、PUTを使用しないでください。その代わりに、既存の条件を削除してから、新しい条件type
とすべての フィールドで新しい条件を追加(POST)してください。
Infrastructure条件を更新する際は、次の基本的なcURLコマンドを使用します。更新対象の条件を指定するには、"id":
を含めるようにしてください。
例:条件を更新する(PUT) curl -X PUT 'https://infra-api.newrelic.com/v2/alerts/conditions/condition-id' -H 'Api-Key:$API_KEY ' -i -H 'Content-Type: application/json' -d '{"data":{DATA object details}}'
更新しているInfrastructure条件のタイプについては、DATA
オブジェクト(-d \
セクション)に詳細情報を含めてください。
Infrastructure条件を削除(DELETE)する Infrastructure条件を削除する際は、以下の基本的なcURLコマンドを使用します。
curl -v -X DELETE --header "Api-Key: $API_KEY " "https://infra-api.newrelic.com/v2/alerts/conditions/condition_id"
条件のタイプ プロセス実行条件のAPIデータ プロセス実行条件 では、プロセス数が定義した閾値を上回った場合、下回った場合、あるいは閾値と等しくなった場合にアラートを送信します。プロセス実行条件を追加(POST )または更新(PUT) するには、APIキー を使用し、定義 を参照してAPIコールの値をカスタマイズします。
例:条件のタイプ たとえば、
curl -X POST 'https://infra-api.newrelic.com/v2/alerts/conditions' -H 'Api-Key:$API_KEY ' -i -H 'Content-Type: application/json' -d
'{
"data":{
"type":"infra_process_running",
"name":"Java is running",
"enabled":true,
"where_clause":"(hostname LIKE '\''%cassandra%'\'')",
"policy_id":policy_id,
"comparison":"equal",
"critical_threshold":{
"value":0,
"duration_minutes":6
},
"process_where_clause":"(commandName = '\''java'\'')"
}
}'
重要 余分な一重引用符でwhere_clause
の周りの一重引用符をエスケープしていることに注意してください。 process_where_clause
メトリック条件のAPIデータ メトリクス条件では、選択したメトリックが定義した閾値を上回った場合、下回った場合、あるいは閾値と等しくなった場合にアラートを送信します。これには以下が含まれます。
システム メトリックス
プロセス メトリックス
ネットワーク メトリックス
ストレージ メトリックス
クラウドインテグレーション メトリックス
メトリクス条件を追加(POST) または更新(PUT) するには、APIキー を使用し、定義 を参照してAPIコールの値をカスタマイズします。
クラウドインテグレーションのアラート条件を追加もしくはアップデートする場合:
event_type
フィールドには、選択したクラウドインテグレーションサービスが生成したイベントタイプを入力してください(例:AWS EC2インテグレーションにはComputeSample
)。
プロバイダー値を必要とするクラウドインテグレーションサービスでアラート条件を設定する場合(例:AWS RDSはprovider
値がRdsDbInstance
もしくはRdsDbCluster
のDatastoreSample
を使用しており、"integration_provider"
フィールドを追加して、アラート条件がターゲットにしたサービスに適した値を使用しなくてはいけません(例:"integration_provider":"RdsDbInstance"
)。
select_value
フィールドでは、provider
を標準的な接頭辞ストリングとする、以下の構文を用いてメトリック名を構築します。
provider.metric.aggregation_type
metric
:ご利用のインテグレーションのNew Relicドキュメンテーション内に書かれたメトリック名を使用してください。aggregation_type
:Sum
、Average
、Minimum
またはMaximum
を使用します。インテグレーションのクラウドプロバイダによるオリジナルドキュメンテーションを参照して、各メトリクスで利用可能な統計集団はどれか確認してください。例 たとえば、
curl -X POST 'https://infra-api.newrelic.com/v2/alerts/conditions' -H 'Api-Key:$API_KEY ' -i -H 'Content-Type: application/json' -d
'{
"data":{
"type":"infra_metric",
"name":"Disk Space Condition",
"enabled":true,
"where_clause":"(hostname LIKE '\''%cassandra%'\'')",
"policy_id":policy_id,
"event_type":"StorageSample",
"select_value":"diskFreePercent",
"comparison":"below",
"critical_threshold":{
"value":10,
"duration_minutes":1,
"time_function":"any"
},
"warning_threshold":{
"value":30,
"duration_minutes":2,
"time_function":"any"
}
}
}'
重要 余分な一重引用符で…の周りの一重引用符をエスケープしていることに注意してください。 where_clause
定義cURLコマンドをフォーマットする際には、必要に応じて以下の値を使用します。これらはAPI呼び出し内の表示順ではなく、アルファベット順に表示されます。
フィールド
定義
comparison
(列挙体 )
条件タイプ: infra_metric
、 infra_process_running
閾値の定義に使用する値(例:"["above", "below", "equal"]
)。
critical_threshold
および warning_threshold
条件タイプ: all
このオブジェクトは、違反をオープンする前に閾値を識別します。
critical_threshold
は必須です。
warning_threshold
はオプションで、infra_metric
条件でのみ使用できます。
このオブジェクトのキーは、条件タイプによって異なります。
条件タイプ: infra_metric
フォーマット:
"duration_minutes":<integer>,
"time_function":"any" or "all"
条件タイプ: infra_process_running
フォーマット:
"duration_minutes":<integer>,
条件タイプ: infra_host_not_reporting
フォーマット:
"duration_minutes":<integer>,
value
条件が違反をオープンするには、この数値を超過する必要があります
duration_minutes
条件が違反をオープンするためにvalue
が費やす、または到達する必要がある分数
time_function
違反を作成するために条件が特定の期間中保持される必要がある、または特定の期間中に閾値を一度超過する必要があるだけかを示します。for at least x minutes
閾値を設定する場合は、all
を使用します。at least once in x minutes
閾値の場合は、any
を使用します。
enabled
(ブール値 )
条件タイプ: all
条件のオンまたはオフ(true
またはfalse
)の状態を示します。
event_type
[string ])
条件タイプ: infra_metric
メトリックのイベント(例:システムメトリクス、プロセスメトリクス、ストレージメトリクス、ネットワークメトリクス)。Infrastructureインテグレーションにデータを自動入力します(例:StorageSample
またはSystemSample
)。
filter
[string ])
条件タイプ: all
条件がUIで作成された場合は、where_clause
の代わりにfilter
が表示されます。たとえば:
{and: [{is: {ec2InstanceType: "m3.medium"}}]}
推奨: 新しい条件を作成する際は、where_clause
を使用してください。
id
(整数 )
条件タイプ: all
URL内の条件ID。
GET:この値はGETレスポンスに出力されます。 PUT:この値をDATA
セクションに含めてください。 POST:これはDATA
セクションに含めないようにしてください。 この値は、-X DELETE
コールに含めてください。 integration_provider
[string ])
条件タイプ: infra_metric
インテグレーションに関するアラートについては、event_type
の代わりにintegration_provider
を使用します。有効な値を参照するには:ご利用のクラウドサービスのNew Relicドキュメンテーションから、データを見つけて使用する セクションを確認してください。
例:AWS RDS監視インテグレーション のドキュメンテーションからは、DatastoreSample
イベントタイプをintegration_provider
値と共に使用できることが分かります。この場合、DBインスタンスではRdsDbInstance
、またAurora DBクラスタではRdsDbCluster
となります。
name
[string ])
条件タイプ: all
Infrastructureのアラート条件の名前。たとえば:
policy_id
(整数 )
条件タイプ: all
条件に関連するアラートポリシーのアカウントIDに対するユニークID(例:1234567890
)。これはポリシーのグローバルIDではありません。
process_where_clause
[string ])
条件タイプ: infra_process_running
プロセスに適用したすべてのフィルタ、特にアラート条件を実行中のプロセス。このパラメーターは、こうした種類のアラート条件において必須です。例:
"commandName = '\''java'\''"
runbook_url
[string ])
条件タイプ: all
通知に表示されるランブック URL。
select_value
[string ])
条件タイプ: infra_metric
ターゲットとするメトリックを識別する属性名(例:"cpuPercent"
、"diskFreePercent"
、"memoryResidentSizeBytes", or "memoryFreeBytes/memoryTotalBytes*100"
)。Infrastructureインテグレーションにデータを自動入力します(例:diskFreePercent
)。
type
(列挙体 )
条件タイプ: all
Infrastructureアラート条件のタイプ:"infra_process_running"
、"infra_metric"
または"infra_host_not_reporting"
。
violation_close_timer
(整数 )
条件タイプ: all
時間で表された、違反時間制限 設定。可能な値は0
、1
、2
、4
、8
、12
、24
、48
、72
。これにより、違反が自動的に終了する前にどのくらいの時間が経過するかが決まります。
新たな条件については、値が示されていない場合、次のデフォルト値を使用します:
where_clause
[string ])
条件タイプ: all
該当する場合、使用されているすべてのInfrastructureホストフィルター を識別します。たとえば:
"(`hostname` LIKE '\''%cassandra%'\'')",