このページでは、イベントとアクションの抑制を作成、管理、およびモニタするために使用できる、イベントと抑制 API メソッドについて説明します。

ビジネスアプリケーションのすべての正常性ルール違反を取得する

指定したタイムフレーム内にアプリケーションで発生したすべての正常性ルールに対する違反を返します。 

URI

/controller/rest/applications/application_id/problems/healthrule-violations

入力パラメータ

パラメータ名

Parameter Type

必須

application_id

URI

アプリケーション名またはアプリケーション ID のいずれかを指定します。

あり

time-range-type

[Query(クエリ)]

次の値を使用できます。
BEFORE_NOW 
"BEFORE_NOW" オプションを使用するには、"duration-in-mins" パラメータも指定する必要があります。
BEFORE_TIME
"BEFORE_TIME" オプションを使用するには、"duration-in-mins" および "end-time" パラメータも指定する必要があります。
AFTER_TIME
"AFTER_TIME" オプションを使用するには、"duration-in-mins" および "start-time" パラメータも指定する必要があります。

BETWEEN_TIMES

このオプションを使用するには、"start-time" および "end-time" パラメータも指定する必要があります。"BETWEEN_TIMES" の範囲には start-time が含まれますが、end-time は入りません。

あり

duration-in-mins

[Query(クエリ)]

メトリックデータを返す期間(分単位)。

time-range-type が BEFORE_NOW, BEFORE_TIME, または AFTER_TIME の場合

start-time

[Query(クエリ)]

メトリックデータが返される期間の開始時刻(ミリ秒単位)。

time-range-type が AFTER_TIME  または BETWEEN_TIMES の場合

end-time

[Query(クエリ)]

メトリックデータが返される期間の終了時刻(ミリ秒単位)。

time-range-type が BEFORE_TIME または BETWEEN_TIMES の場合

output

[Query(クエリ)]

出力形式を変更するために URL の一部として含まれている HTTP リクエストパラメータ。有効な値は XML(デフォルト)または JSON です。

なし

http://demo.appdynamics.com/controller/rest/applications/7/problems/healthrule-violations?time-range-type=BEFORE_NOW&duration-in-mins=15 
<policy-violations><policy-violation>
  <id>266</id>
  <name>CPU utilization is too high</name>
  <startTimeInMillis>1452630655000</startTimeInMillis>
  <detectedTimeInMillis>0</detectedTimeInMillis>
  <endTimeInMillis>1452630715000</endTimeInMillis>
  <incidentStatus>RESOLVED</incidentStatus>
  <severity>WARNING</severity>
  <triggeredEntityDefinition>
    <entityType>POLICY</entityType>
    <entityId>30</entityId>
    <name>CPU utilization is too high</name>
  </triggeredEntityDefinition>
  <affectedEntityDefinition>
    <entityType>APPLICATION_COMPONENT_NODE</entityType>
    <entityId>16</entityId>
    <name>Fulfillment</name>
  </affectedEntityDefinition>
  <deepLinkUrl>http://demo.appdynamics.com/controller/#location=APP_INCIDENT_DETAIL&incident=266</deepLinkUrl>
  <description>AppDynamics has detected a problem.<br><b>errorAbhi</b> is violating.
</description>
</policy-violation>
<policy-violation>
  <id>268</id>
  <name>CPU utilization is too high</name>
  <startTimeInMillis>1452630655000</startTimeInMillis>
  <detectedTimeInMillis>0</detectedTimeInMillis>
  <endTimeInMillis>1452630715000</endTimeInMillis>
  <incidentStatus>RESOLVED</incidentStatus>
  <severity>WARNING</severity>
  <triggeredEntityDefinition>
    <entityType>POLICY</entityType>
    <entityId>30</entityId>
    <name>CPU utilization is too high</name>
  </triggeredEntityDefinition>
  <affectedEntityDefinition>
    <entityType>APPLICATION_COMPONENT_NODE</entityType>
    <entityId>20</entityId>
    <name>FulfillmentClient</name>
  </affectedEntityDefinition>
  <deepLinkUrl>http://demo.appdynamics.com/controller/#location=APP_INCIDENT_DETAIL&incident=268</deepLinkUrl>
  <description>AppDynamics has detected a problem with Node <b>FulfillmentClient</b>.<br><b>CPU utilization is too high</b> started violating and is now <b>warning</b>.<br>All of the following conditions were found to be violating<br>For Node <b>FulfillmentClient</b>:<br>1) Hardware Resources|CPU|%Busy Condition<br><b>%Busy's</b> value <b>76.0</b> was <b>greater than</b> the threshold <b>75.0</b> for the last <b>30</b> minutes<br></description>
</policy-violation>
</policy-violations>

イベントデータを取得する

eventtypes パラメータにリストされているイベントタイプのデータをキャプチャできます。

URI 

/controller/rest/applications/application_id/events

入力パラメータ

パラメータ名

Parameter Type

必須

application_id

URI

アプリケーション名またはアプリケーション ID のいずれかを指定します。

あり

summary[Query(クエリ)]イベントの概要を指定します。あり
comment[Query(クエリ)]イベントのコメント(存在する場合)を指定します。なし
eventtype[Query(クエリ)]APPLICATION_DEVELOPMENTあり

time-range-type

[Query(クエリ)]

次の値を使用できます。
BEFORE_NOW 
"BEFORE_NOW" オプションを使用するには、"duration-in-mins" パラメータも指定する必要があります。
BEFORE_TIME
"BEFORE_TIME" オプションを使用するには、"duration-in-mins" および "end-time" パラメータも指定する必要があります。
AFTER_TIME
"AFTER_TIME" オプションを使用するには、"duration-in-mins" および "start-time" パラメータも指定する必要があります。

BETWEEN_TIMES

このオプションを使用するには、「start-time」および「end-time」パラメータも指定する必要があります。[BETWEEN_TIMES] の範囲には start-time が含まれますが、end-time は除外されます。

あり

duration-in-mins

[Query(クエリ)]

メトリックデータを返す期間(分単位)を指定します。

time-range-type が BEFORE_NOW, BEFORE_TIME, または AFTER_TIME の場合

start-time

[Query(クエリ)]

メトリックデータが返される期間の開始時刻(ミリ秒単位)を指定します。

time-range-type が AFTER_TIME  または BETWEEN_TIMES の場合

end-time

[Query(クエリ)]

メトリックデータが返される期間の終了時刻(ミリ秒単位)を指定します。

time-range-type が BEFORE_TIME または BETWEEN_TIMES の場合

event-types

[Query(クエリ)]

イベント情報を取得するイベントタイプのカンマ区切りリストを指定します。「イベント参考資料」を参照してください。

あり

severity

[Query(クエリ)]

重大度レベルを指定します。イベント情報を取得する重大度のカンマ区切りリストを指定します。
使用できる値は、次のとおりです。

  • INFO
  • WARN
  • ERROR

UI では、これらの値は Info, Warning, および Critical になります。

あり

output

[Query(クエリ)]

出力形式を変更するために URL の一部として含まれている HTTP リクエストパラメータ。有効な値は XML(デフォルト)または JSON です。

なし

tier[Query(クエリ)]アプリケーションの階層名なし

この API を使用して、一度に 600 件のイベントを取得できます。

指定した時間範囲内で発生した任意の重大度の APPLICATION_ERROR または DIAGNOSTIC_SESSION タイプのイベントリストを取得します。

curl --user user1@customer1:your_password http://demo.appdynamics.com//controller/rest/applications/6/events?time-range-type=BEFORE_NOW\&duration-in-mins=30\&event-types=%20APPLICATION_ERROR,DIAGNOSTIC_SESSION\&severities=INFO,WARN,ERROR

<events><event>
  <id>44658</id>
  <type>DIAGNOSTIC_SESSION</type>
  <subType>ERROR_DIAGNOSTIC_SESSION</subType>
  <eventTime>1451343453085</eventTime>
  <severity>WARN</severity>
  <summary>Starting Diagnostic Session after series of errors for a Business Transaction 18% (2/11) of requests had errors in the last minute starting 12/28/15 10:57 PM local time</summary>
  <affectedEntities>
    <entity-definition>
      <entityType>APPLICATION</entityType>
      <entityId>6</entityId>
      <name>ECommerce</name>
    </entity-definition>
    <entity-definition>
      <entityType>APPLICATION_COMPONENT</entityType>
      <entityId>11</entityId>
      <name>ECommerce-Services</name>
    </entity-definition>
    <entity-definition>
      <entityType>APPLICATION_COMPONENT_NODE</entityType>
      <entityId>19</entityId>
      <name>ECommerce_WEB2</name>
    </entity-definition>
    <entity-definition>
      <entityType>BUSINESS_TRANSACTION</entityType>
      <entityId>35</entityId>
      <name>/items/all.GET</name>
    </entity-definition>
    <entity-definition>
      <entityType>MACHINE_INSTANCE</entityType>
      <entityId>8</entityId>
      <name>ECommerce-web1</name>
    </entity-definition>
  </affectedEntities>
  <triggeredEntity>
    <entityType>APPLICATION_COMPONENT_NODE</entityType>
    <entityId>19</entityId>
    <name>ECommerce_WEB2</name>
  </triggeredEntity>
  <markedAsRead>false</markedAsRead>
  <markedAsResolved>false</markedAsResolved>
  <archived>false</archived>
  <deepLinkUrl>http://demo.appdynamics.com:8090/controller/#location=APP_EVENT_VIEWER_MODAL&eventSummary=44658</deepLinkUrl>
</event>
</events>

イベントの作成

アプリケーション展開イベントは、アプリケーションをアップグレードするときや新しいコードをプッシュするときなどに、AppDynamics に通知を行います。これにより、これらのアプリケーション展開アクティビティを AppDynamics 内の他のデータと関連付けることができます。これは、回帰分析、根本原因分析、およびパフォーマンスの調査を行う際に役立ちます。アプリケーションの新バージョンを展開するためのビルドプロセスの一環として、アプリケーション展開イベントを AppDynamics に組み込むと便利です。

AppDynamics REST API を使用すると、APPLICATION_DEPLOYMENT タイプのイベントと他のシステムを統合できます。

たとえば、新しいリリースごとに AppDynamics の監視対象システムでイベントを自動的に作成するには、これらのシステムを統合し、次の REST API を使用して、管理対象環境でタイプ APPLICATION_DEPLOYMENT" のイベントを作成します。

要求が正常に呼び出された後で、イベント ID を受信する必要があります。

ロールと権限

イベントを作成するには、Create Events 権限が必要です。詳細については、アプリケーションの権限を参照してください。

URI

POST /controller/rest/applications/application_id/events

入力パラメータ

パラメータ名

Parameter Type

必須

application_id

URI

アプリケーション名またはアプリケーション ID のいずれかを指定します。

あり

summary

[Query(クエリ)]

イベントを説明する概要を指定します。

あり

comment

[Query(クエリ)]

イベントのコメント(存在する場合)を入力します。

なし

eventtype

[Query(クエリ)]

APPLICATION_DEPLOYMENT

あり

severity[Query(クエリ)]重大度レベルを指定します。許容値は次のとおりです:
  • "INFO"
  • "WARN"
  • "ERROR"

UI では、これらは "Info", "Warning" および "Critical" になります。

あり

カスタムイベントの作成

AppDynamics イベントビューアおよび AppDynamics ダッシュボードのイベントパネルでレポートされるカスタムイベントを作成できます。カスタムイベントでのフィルタ処理の方法については、「イベントのモニタリング」を参照してください。 次に、AppDynamics 標準イベントによってトリガーされたアラートを、このイベントで実行するとおりに作成できます。

要求が正常に呼び出された後で、イベント ID を受信する必要があります。

ロールと権限

カスタムイベントを作成するには、Create Events 権限が必要です。詳細については、アプリケーションの権限を参照してください。

URI

POST /controller/rest/applications/application_id/events

入力パラメータ

パラメータ名

Parameter Type

必須

application_id

URI

アプリケーション名またはアプリケーション ID のいずれかを指定します。

あり

summary

[Query(クエリ)]

イベントを説明する概要を指定します。

あり

comment

[Query(クエリ)]

イベントのコメントを指定します。

なし

severity[Query(クエリ)]

重大度レベルを指定します。許容値は次のとおりです:

  • "INFO"
  • "WARN"
  • "ERROR"

UI では、これらは "Info", "Warning" および "Critical" になります。

あり

eventtype

[Query(クエリ)]

カスタム

あり

customeventtype[Query(クエリ)]"type". に名前を指定します。たとえば、"nagios". のようなソースを指定します。なし
node[Query(クエリ)]影響を受けるノード名を指定します。なし
tier[Query(クエリ)]影響を受ける階層名を指定します。あり(node および bt が指定されている場合)
bt[Query(クエリ)]影響を受けるビジネストランザクション名を指定します。なし
propertynames[Query(クエリ)]プロパティ名をペアとして指定します("key".)。なし。ただし、ペアの 1 つの要素が定義されている場合は、もう一方の要素も定義する必要があります。
propertyvalues[Query(クエリ)]プロパティ値をペアとして指定します(value")。値は 5000 文字に制限されています。

なし。ただし、ペアの 1 つの要素が定義されている場合は、もう一方の要素も定義する必要があります。

curl -X POST --user user1@customer1:your_password 'http://demo.appdynamics.com/controller/rest/applications/5/events?severity=INFO&summary=test1&eventtype=CUSTOM&customeventtype=mycustomevent&propertynames=key1&propertynames=key2&propertyvalues=value1&propertyvalues=value'

カスタムプロパティのパターンに注意してください。propertynamespropertyvalues は配置が一致するため、N 個のプロパティ値を設定するには、propertynames を N 回、propertyvalues を N 回出現させる必要があります。

通知用のカスタム URL の作成

マルチテナント コントローラ インスタンス内の単一テナントは、この API メソッドを使用して、通知用にカスタム URL またはバニティ URL を指定する必要があります。paid8.appdynamics.com などの URL をホストとして表示するのではなく、カスタム URL を通知内で yourcompany.appdynamics.com のように表示できます。

URI

POST /controller/rest/accounts/customer_name/update-controller-url

入力パラメータ

パラメータ名

Parameter Type

必須

customer_nameURIカスタマーアカウント名あり

本文パラメータ

アプリケーション/JSON コンテンツとして:

{
   "controllerURL": "http://<my-custom-hostname:port>"
}
CODE

アラートの URL が無効な場合は、次の curl コマンドを使用して設定できます。

curl -k --basic --user root@system --header "Content-Type: application/json" --data '{ "controllerURL": "http://<controller>:<port>" }' http://<controller>:<port>/controller/rest/accounts/<ACCOUNT-NAME>/update-controller-url
curl -k --basic --user root@system --header "Content-Type: application/json" --data '{ "controllerURL": "http://<controller>:<port>" }' http://<controller>:<port>/controller/rest/accounts/<ACCOUNT-NAME>/update-controller-url

例:

curl -k --basic --user root@system --header "Content-Type: application/json" --data '{ "controllerURL": "https://myVIP:443" }' https://myhost:8181/controller/rest/accounts/customer1/update-controller-url

コントローラをアップグレードするとディープリンク URL の設定がリセットされるため、コントローラをリセットする必要はありません。

アクションの抑制を作成および削除する

XML は次のヘッダーを使用して要求できますが、デフォルトではすべての応答が JSON に含まれています。
Name : Accept
Value : application/vnd.appd.cntrl+xml;v=1

既存のアクションの抑制をすべて取得する

既存のアクションの抑制を一覧で取得します。 

URI

GET /controller/api/accounts/account_id/applications/application_id/actionsuppressions

入力パラメータ

パラメータ名

Parameter Type

必須

account_id URIアカウント IDあり

application_id

URI

アプリケーション ID

あり

すべてのアクション抑制を取得する要求の例:

/controller/api/accounts/2/applications/9/actionsuppressions

レスポンスの例:

Status : 200 ok
Output Data :
{"actionSuppressions": [{"id": "15","name": "App-ASW","timeRange": {"startTimeMillis": "2014-10-25T04:16:30+0000","endTimeMillis": "2014-10-25T06:16:30+0000"},"affects": {"type": "APP"}},{"id": "16","name": "Node-ASW","timeRange": {"startTimeMillis": "2014-10-25T04:16:57+0000","endTimeMillis": "2014-10-25T05:16:57+0000"},"healthRuleIds": [60,61],"affects": {"type": "NODE","nodeAffectedEntities": {"type": "SPECIFIC","nodeType": "ALL","nodes": [17,18]}}}],"actions": [{"href": "http://demo.appdynamics.com:8090/controller/api/accounts/2/applications/9/actionsuppressions/%7Bactionsuppressions.id%7D/%7Bactions.name%7D","method": ["POST","DELETE"],"name": "enabled"}],"links": [{"href": "http://ec2-54-80-163-175.compute-1.amazonaws.com:8090/controller/api/accounts/2/applications/9/actionsuppressions/%7Bactionsuppressions.id%7D","name": "actionsuppressions"}]}

特定のアクションの抑制を ID ごとに取得する

指定した ID でアクションの抑制を取得します。 

URI

/controller/api/accounts/account_id/applications/application_id/actionsuppressions/actionsuppression_id

入力パラメータ

パラメータ名

Parameter Type

必須

account_idURIアカウント ID。あり

application_id

URI

アプリケーション ID。

あり

actionsuppressions_idURIアクションの抑制 ID。あり

要求の例:

/controller/api/accounts/2/applications/9/actionsuppressions/15

レスポンスの例:

Status : 200 ok
Output Data :
{"id": "15","name": "App-ASW","timeRange": {"startTimeMillis": "2014-10-25T04:16:30+0000","endTimeMillis": "2014-10-25T06:16:30+0000"},"affects": {"type": "APP"}}

新しいアクションの抑制を作成する

これは、「201 - created」応答を返す必要がある POST 要求です。

URI

POST /controller/api/accounts/account_id/applications/application_id/actionsuppressions

入力パラメータ

パラメータ名

Parameter Type

必須

account_idURIアカウント ID。あり

application_id

URI

アプリケーション ID。

対応

name本文キーアクション抑制ウィンドウの名前。対応
timeRange本文キー

ウィンドウの開始時刻と終了時刻。
含まれるもの:
startTimeMillis(2014-10-25T04:16:57+0000 など)
endTimeMillis(2014-10-25T05:16:57+0000 など)

対応
healthRuleIds本文キー影響を受ける正常性ルールの ID。指定しない場合、すべてのルールが影響を受けますなし
affects本文キー

エンティティのタイプと対応する ID:

対象範囲[タイプ(Type)]
アプリケーションアプリアプリケーション全体に対応"affects": {"type": "APP"}
ビジネストランザクションBT1 つ以上のビジネストランザクションに対応


すべてのビジネストランザクション"affects": {"type": "BT","btAffectedEntities": {"type": "ALL"}}


特定の階層内のすべてのビジネストランザクション"affects": {"type": "BT","btAffectedEntities": {"type": "WITHIN_TIERS","tiers": [11,12]}}  。ここで 11、12 は階層 ID です


ID 別の具体的なビジネストランザクション"affects": {"type": "BT","btAffectedEntities": {"type": "SPECIFIC","bts": [1,2]}}。ここで、1、2 は BT ID です


条件に一致するビジネストランザクション

"affects": {"type": "BT","btAffectedEntities": {"type": "CRITERIA","matchesOperator": "CONTAINS","matchesValue": "pojo"}}
。ここで、"matchesOperator" は次のいずれかです。

  • CONTAINS
  • EQUALS
  • STARTS
  • 終了日
  • REGEX_VALUE
ティアTIER1 つ以上の階層に対応


すべてのレベル"affects": {"type": "TIER","tierAffectedEntities": {"type": "ALL"}}


特定のティア"affects": {"type": "TIER","tierAffectedEntities": {"type": "SPECIFIC","tiers": [11,12]}}。ここで 11、12 は階層 ID です
ノードノード1 つ以上のノードに対応


すべてのノード"affects": {"type": "NODE","nodeAffectedEntities": {"type": "ALL","nodeType": "ALL"}}


特定の階層に属するノード"affects": {"type": "NODE","nodeAffectedEntities": {"type": "WITHIN_TIERS","nodeType": "ALL","tiers": [11,12]}}。ここで 11、12 は階層 ID です


特定のノード"affects": {"type": "NODE","nodeAffectedEntities": {"type": "SPECIFIC","nodeType": "ALL","nodes": [9,10]}}(9 と 10 はノード ID)


条件に一致するノード
 

"affects": {"type": "NODE","nodeAffectedEntities": {"type": "NAME_CRITERIA","nodeType": "ALL","nameMatchesOperator": "EQUALS","nameMatchesValue": "Node"}} - String match
"affects": {"type": "NODE","nodeAffectedEntities": {"type": "PROPERTY_CRITERIA","nodeType": "ALL","metaInfoProperties": [{"name": "ProcessID","value": 12343}]}} - Meta Info Properties match

ここで、「matchesOperator」は次のようになります。

  • CONTAINS
  • EQUALS
  • STARTS
  • ENDS
  • REGEX_VALUE
マシンMACHINE1 つ以上のマシンに対応"affects": {"type": "MACHINE","machineAffectedEntities": {"type": "SPECITIC","machines": [4,5]}}(4 と 5 はマシン ID)
基本のコードに入力ミスがあるため、値は正確に「SPECITIC」と入力するようご注意ください。
対応

要求の例

 /controller/api/accounts/2/applications/9/actionsuppressions

ヘッダー

  • Name: Content-Type
  • Value: application/vnd.appd.cntrl+json;v=1

本体

{"name": "App-ASW_2","timeRange": {"startTimeMillis": "2014-10-25T04:16:30+0000","endTimeMillis": "2014-10-25T06:16:30+0000"},"affects": {"type": "APP"}}

または

{"name": "Node-ASW_1","timeRange": {"startTimeMillis": "2014-10-25T04:16:57+0000","endTimeMillis": "2014-10-25T05:16:57+0000"},"healthRuleIds": [60,61],"affects": {"type": "NODE","nodeAffectedEntities": {"type": "SPECIFIC","nodeType": "ALL","nodes": [17,18]}}}

特定のアクションの抑制を ID ごとに削除する

これは、「204 - No Content」メッセージを返す必要がある DELETE 要求です。

URI

DELETE /controller/api/accounts/account_id/applications/application_id/actionsuppressions/actionsuppression_id

入力パラメータ

パラメータ名

Parameter Type

必須

account_idURIアカウント IDあり

application_id

URI

アプリケーション ID

あり

actionsuppression_idURI削除されるアクションの抑制 IDあり。Alert and Respond API を使用すると、AppDynamics アラートおよび応答機能のイベントや正常性ルールなどを管理およびモニタできます。