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

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

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

問題を作成する

応用情報のためのREST API

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

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

認証

REST APIは、安全なトークンベースの認証をサポートし、入力としてJSONコンテンツを受け入れます。セキュアートークンを取得するには、 one.newrelic.com をクリックし、 Alerts& AI をクリックし、左ナビの Incident Intelligence をクリックし、 Sources をクリックし、 REST API をクリックします。

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

バッチングデータ

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

バッチは、 {"events": [{"event_source":"Snap", ...}]} のように、各イベントパーツを"events" の値となるようにリスト化して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コールの作成

Incident Intelligence Sources ページで、 REST API をクリックします。正しいアカウントを選択し、クリップボードのアイコンをクリックして、コレクターの URL をコピーします。セキュリティ トークンは、 Authorization.Bearer HTTP ヘッダーで使用する必要があります。Bearer HTTP ヘッダで使用します。

このインターフェースを使用した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

インシデントイベントをApplied Intelligenceに送信し、処理を行う。

利用可能なフィールド

フィールド

説明

イベントソース

文字列

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

: {"event_source":"sensu"}。

ホスト、サービス、アプリケーション

文字列

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

: {"ホスト":"支払い 001"}。

value

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

REQUIRED.インシデントの優先度。String must be one of: critical, high, medium, low
イベントが発生したことを示すために真偽値を使用する。

: {"値":"高"}。

タイムスタンプ

ロング

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

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

: {"timestamp": 1591302334}。

イベントの説明

文字列

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

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

属性

JSONオブジェクト

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

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

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

:

{"属性": {

"affected_cluster":"cluster foo",

"チーム":"SRE Infra チーム",

"環境":"生産"

}}

重複排除と識別

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

label/ を前につけた属性はすべてラベルとみなされます。

ラベルの組み合わせ、 event_source, host, application, server は、ユニークなインシデントを作成するために使用されます。ラベルが提供されない場合は、重複排除キーとして使用される alert/id 属性を提供してください。

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

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

属性名

説明

アラート/デスクリプション

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

アラート/ID

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

同じ alert/id で受信したすべてのインシデントは、同じオープンインシデントに集約されます。

重要: alert/id を手動で指定すると、New Relic が定義されたラベルを使ってアラート ID を自動作成する機能が無効になります。

アラート/メトリック・ネーム

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

アラート/ポリシーID

アラートのポリシーID。

アラート/ポリシー名

アラートのポリシー名。

アノテーション/デスクリプション

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

アプリケーション/ID

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

アプリケーション名

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

アベイラビリティー・ゾーン

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

クラウド/リージョン

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

クラスター名

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

データセンター名

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

環境

環境の種類(dev、prod)。

ヘルスチェック/エンティティ名

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

ヘルスチェック/ID

ヘルスチェックの識別。

health_check/name

健康診断の名前。

ヘルスチェック/プローベ_ID

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

ヘルスチェック/プローブ名

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

ヘルスチェック/タイプ

ヘルスチェックタイプ。

ホスト/ネーム

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

インスタンス/ネーム

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

インスタンス/タイプ

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

label/*

label/ の前に付いている属性は、インシデントのデデュープキーの一部とみなされ、インシデントを特定するために使用されます。

組織・名称

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

runbook_url

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

サービス/名前

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

サービス/ステータス

計装されたサービスの状態。
up or down のいずれかになります。

ステート

イベントがどのような状態であるかを示す。許容される値は以下の通りです。 alarm and ok.

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

値が ok の場合、これは同じ ラベル または alert/id で開いている事件を閉じます。

問題を作成する
Copyright © 2023 New Relic Inc.