• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

応用情報のためのREST API

インシデントイベントAPIでは、独自のインシデント管理システムから関連する活動を報告し、高度な相関関係や推論を行うことができます。このAPIは、必要最小限の属性と、インシデント・イベントのネイティブ・キーと値を維持する柔軟性を備えた汎用的な方法で設計されています。

より多くの情報を提供していただくことで、意思決定エンジンがより適切な情報を提供できるようになります。必須フィールドに加えて、属性フィールドを使用して、特定の情報をプッシュしてください。

認証

REST APIは、安全なトークンベースの認証をサポートし、入力としてJSONコンテンツを受け入れます。安全なトークンを取得するには、 one.newrelic.comにアクセスし、[アラートとAI ]をクリックし、左側のナビゲーションの[インシデントインテリジェンス]で[ソース]をクリックしてから、[ RESTAPI ]をクリックします。

セキュアートークンを取得するには、ユーザーアカウントにSourcesを管理する権限が必要です。

バッチングデータ

現在、同じAPIコールで最大10個のイベントをサポートしています。バッチ処理を行うには、新しいイベントデータを本文に追加するだけです。

次のサンプルに示すように、バッチは、「イベント」の値であるリスト内の各イベント部分とともに{"events": [{"event_source": "Snap", ...}]}としてPOSTする必要があります。

サンプルJSON

{
"events": [{
"application": "Name of my application",
"attributes": {
"alert/description": "Add a description about the alert itself",
"state": "alarm",
"application/state": "MAJOR",
"environment": "prod"
},
"event_description": "Add a description about the incident",
"event_source": "List the application that created the incident",
"host": "host-name",
"value": "medium"
}]
}

コレクターはまず、 eventsがルートオブジェクトのキーであるかどうかを確認し、そうである場合は、抽出して繰り返します。

デフォルトのデータサイズ制限

  • バッチ - ボディ内に最大10個のメッセージを表示します。
  • メトリックやイベントごとに最大20個のアトリビュートをサポートしています。
  • 各文字列値のフィールドサイズは、1024文字に制限されています。
  • 各属性名のフィールドサイズは128文字に制限されています。

ヒント

データのサイズや制限について異なる要件をお持ちの場合は、それらのパラメータを調整することができますので、お問い合わせください。

APIコールの作成

インシデントインテリジェンスソースページで、 RESTAPIをクリックします。正しいアカウントを選択し、クリップボードアイコンをクリックしてコレクターURLをコピーします。セキュリティトークンは、 Authorization:BearerHTTPヘッダーで使用する必要があります。

このインターフェースを使用したcurlコマンドの例を示します。

curl -L -X POST 'https://collectors.signifai.io/v1/incidents' -H 'Authorization: Bearer XXXXXXXXX' -H 'Content-Type: application/json' --data-raw '{"application": "A Unique App Name","attributes": {"alert/description": "The health check end-point is failing for A Unique App Name","annotations/description": "Health check failure","cluster/name": "auan_001","datacenter/name": "US-EAST-1","health_check/entity_name": "a-unique-app-name","service/name": "a-unique-app-name","service/status": "down","state": "alarm","label/namespace": "use labels to control how events aggregate into incidents"},"event_description": "Something in the health check failed for A Unique App Name","event_source": "my-rest-api","value": "critical"}'

API仕様

利用可能な方法

メソッド

APIエンドポイント

説明

POST

https://collectors.signifai.io/v1/incidents

インシデントイベントを適用されたインテリジェンスに送信して処理します。

利用可能なフィールド

フィールド

説明

event_source

REQUIRED.イベントを発生させているシステムやアプリケーションを独自に表現します。

: {"event_source": "sensu"}

host|service|application

REQUIRED.イベントを発生させたもの。関連するホスト、またはホストが関連しない場合は、サービスやアプリケーションを指定できます。注:1つだけ必要です。

: {"host": "payments001"}

value

文字列、ブール値( trueのみがサポートされています)

必須。インシデントの優先度。文字列は次のいずれかである必要があります: criticalhighmediumlow
ブール値を使用して、イベントが発生したことを示します

: {"value": "high"}

timestamp

ロング

負のタイムスタンプはサポートされていません。

デフォルト:サーバーがイベントを受信した時間

: {"timestamp": 1591302334}

event_description

REQUIRED.このイベントを説明するフリーテキスト情報。どのエンティティで何が起こったのかを記述することをお勧めします。これはUIの様々な場所で使用されています。 この属性は必須です。

: {"event_description": "Response time is > 2 seconds for the last 10min on [Production] Storefront"}

attributes

JSONオブジェクト

これは、インシデントイベントに関する追加属性のフラットなキー/バリューマッピングです。できる限り多くの情報やメタデータをここに入れることをお勧めします。

ここで追加された属性は、より良い相関関係を得るために使用されます。

ラベルはattributesオブジェクト内で定義されます。ラベルを使うことで、イベントの重複排除機能をコントロールすることができます。 重複排除と識別 を参照してください。

:

{"attributes": {

"affected_cluster": "cluster foo",

"team": "SRE Infra Team",

"environment": "production"

}}

重複排除と識別

システムの高度な重複排除および相関機能をより適切にサポートするために、インシデントのattributesの一部として一連のラベルまたはアラートIDを提供することをお勧めします。

label/で始まる属性は、ラベルと見なされます。

ラベルの組み合わせ、 event_sourcehostapplication 、およびserverは、一意のインシデントを作成するために使用されます。ラベルが提供されていない場合は、重複排除キーとして使用されるalert/id属性を提供します。

重要な事件の属性(ヒント)

一部の属性は機能が強化されています。これらを送信することで、よりインテリジェントなデータ処理が可能になります。

属性名

説明

alert/description

起こったことを説明する追加の詳細

alert/id

アラートの識別 - インシデントを重複させないために使用されます。

同じalert/idで受信されたすべてのインシデントは、同じ未解決のインシデントに集約されます。

重要alert/idを手動で指定すると、定義されたラベルを使用したNewRelicによるアラートIDの自動作成が無効になります。

alert/metric_name

インシデントのきっかけとなったメトリクス名。

alert/policy_id

アラートのポリシーID。

alert/policy_name

アラートのポリシー名。

annotations/description

UIでの表現に使用されるインシデントの説明です。

application/id

計装されたアプリケーションの識別子。

application/name

ペイロード内のアプリケーションフィールドから割り当てられた、インスツルメンテッドアプリケーション名。

availability_zone

インスツルメンテッド・インシデント・アベイラビリティ・ゾーン

cloud/region

サービスを提供する地域(例:us-east-1)。

cluster/name

影響を受けるクラスタ名を特定する。

datacenter/name

影響を受けるデータセンター名を特定する。

environment

環境の種類(dev、prod)。

health_check/entity_name

事故のきっかけとなったヘルスチェックの名前があれば、それも記入してください。

health_check/id

ヘルスチェックの識別。

health_check/name

健康診断の名前。

health_check/probe_id

ヘルスチェックに使用するプローブIDの識別。

health_check/probe_name

ヘルスチェックに使用するプローブ名。

health_check/type

ヘルスチェックタイプ。

host/name

ペイロード内のホストフィールドから割り当てられた計測対象ホストの名前。

instance/name

インスツルメンテーションされたインスタンス名。

instance/type

インストルメント化されたインスタンスタイプ。

label/*

label/で始まる属性は、インシデント重複排除キーの一部と見なされ、インシデントを識別するために使用されます。

organization/name

組織名(複数ある場合は)

runbook_url

ランブックのリンクがある場合には

service/name

インシデントを報告したサービス名。ペイロード内のサービスフィールドから割り当てられる。

service/status

計装サービスステータス。
upまたはdownのいずれかになります。

state

イベントがどのような状態にあるかを示します。許容値は、 alarmおよびokです。

インシデントを作成するか、同じlabelsまたはalert/idで既存のインシデントを更新する状態が指定されていない場合、デフォルト値はalarmです。

値がokの場合、これは同じlabelsまたはalert/idで未解決のインシデントを閉じます。

Copyright © 2022 New Relic株式会社。