Events API
ビジネスアプリケーションのすべての正常性ルール違反を取得する
このページでは、イベントを作成、管理、およびモニターするために使用できる、イベント API メソッドについて説明します。
指定したタイムフレーム内にアプリケーションで発生したすべての正常性ルールに対する違反を返します。
URI
/controller/rest/applications/application_id/problems/healthrule-violations
入力パラメータ
| パラメータ名 | Parameter Type | 値 | 必須 |
|---|---|---|---|
|
|
URI |
アプリケーション名またはアプリケーション ID のいずれかを指定します。 |
あり |
|
|
クエリ |
可能な値は以下の通りです: BEFORE_NOW
このオプションを使用するには、" |
あり |
|
|
クエリ |
メトリックデータを返す期間(分単位)。 |
time-range-type が |
|
|
クエリ |
メトリックデータが返される期間の開始時刻(ミリ秒単位)。 |
time-range-type が |
|
|
クエリ |
メトリックデータが返される期間の終了時刻(ミリ秒単位)。 |
time-range-type が |
|
|
クエリ |
出力形式を変更するために URL の一部として含まれている HTTP リクエストパラメータ。有効な値は |
いいえ |
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>
Retrieve Event Data
You can capture data for the event types listed in the eventtypes parameter.
URI /controller/rest/applications/application_id/events
Input Parameters
| Parameter Name | Parameter Type | Value | Mandatory |
|---|---|---|---|
|
application_id |
URI |
Provides either the application name or application id. |
Yes |
| summary | Query | Provides the summary for the event. | Yes |
| comment | Query | Provides the comments (if any) for the event. | No |
| eventtype | Query | APPLICATION_DEVELOPMENT |
Yes |
|
time-range-type |
Query |
Possible values are:
To use this option, you must also specify the "start-time" and "end-time" parameters. The "BETWEEN_TIMES" range includes the start-time and excludes the end-time. |
Yes |
|
duration-in-mins |
Query |
Specify the duration (in minutes) to return the metric data. |
If time-range-type is |
|
start-time |
Query |
Specify the start time (in milliseconds) from which the metric data is returned. |
If ttime-range-type is |
|
end-time |
Query |
Specify the end time (in milliseconds) until which the metric data is returned. |
If time-range-type is |
|
event-types |
Query |
Specify the comma-separated list of event types for which you want to retrieve event information. See Events Reference. |
Yes |
|
severity |
Query |
Provides the severity level. Specify the comma-separated list of severities for which you want to retrieve event information. Allowed values are:
In the UI these values become |
Yes |
|
output |
Query |
HTTP Request parameter included as part of the URL to change the output format. Valid values are |
No |
| tier | Query | Name of the tier in the application | No |
Example
Retrieve the list of events of type APPLICATION_ERROR or DIAGNOSTIC_SESSION of any severity that occurred in the specified time range:
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>
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>
Create Events
Application deployment events notify Splunk AppDynamics when you upgrade your application, push new code, etc. This lets you correlate these application deployment activities with other data inside Splunk AppDynamics. This is useful for regression analysis, root cause analysis, and performance studies. It is beneficial to inject your application deployment event into Splunk AppDynamics as part of the build process for deploying a new version of your application.
The Splunk AppDynamics REST API lets you integrate events of type APPLICATION_DEPLOYMENT with other systems.
For example, to create an event automatically in your Splunk AppDynamics monitored system for every new release you would integrate these systems and use the following REST API to create an event of type "APPLICATION_DEPLOYMENT" in your managed environment.
You should receive the event ID after the successful invocation of the request.
Roles and Permissions
URI
POST /controller/rest/applications/application_id/events
Input parameters
| Parameter Name | Parameter Type | Value | Mandatory |
|---|---|---|---|
|
application_id |
URI |
Provide either application name or application id. |
Yes |
|
summary |
Query |
Provide a summary describing the event. |
Yes |
|
comment |
Query |
Provide the comments (if any) for the event. |
No |
|
eventtype |
Query |
APPLICATION_DEPLOYMENT |
Yes |
| severity | Query | Provide a severity level. Allowed values include:
In the UI, these become " |
Yes |
カスタムイベントの作成
Splunk AppDynamics イベントビューアおよび Splunk AppDynamics ダッシュボードのイベントパネルでレポートされるカスタムイベントを作成できます。カスタムイベントをフィルタ処理する方法については、「イベントのモニタリング」を参照してください。次に、Splunk AppDynamics 標準イベントの場合と同じように、これらのイベントによってトリガーされるアラートを作成できます。
要求が正常に呼び出された後で、イベント ID を受信する必要があります。ロールと権限
URI
POST /controller/rest/applications/application_id/events
入力パラメータ
| パラメータ名 | Parameter Type | 値 | 必須 |
|---|---|---|---|
|
application_id |
URI |
アプリケーション名またはアプリケーション ID のいずれかを指定します。 |
あり |
|
summary |
[Query(クエリ)] |
イベントを説明する概要を指定します。 |
あり |
|
コメント |
[Query(クエリ)] |
イベントのコメントを指定します。 |
いいえ |
| 重大度 | [Query(クエリ)] |
重大度レベルを指定します。許容値は次のとおりです:
UI では、これらは " |
あり |
|
eventtype |
クエリ |
カスタム |
あり |
customeventtype |
クエリ | "type". に名前を指定します。たとえば、"nagios". のようなソースを指定します。 |
いいえ |
node |
[Query(クエリ)] | 影響を受けるノード名を指定します。 | いいえ |
tier |
[Query(クエリ)] | 影響を受ける階層名を指定します。 | はい(node と bt が指定されている場合) |
bt |
[Query(クエリ)] | 影響を受けるビジネストランザクション名を指定します。 | いいえ |
propertynames |
クエリ | プロパティ名をペアとして指定します(例:"key".)。 |
なし。ただし、ペアの 1 つの要素が定義されている場合は、もう一方の要素も定義する必要があります。 |
propertyvalues |
クエリ | プロパティ値をペアとして指定します(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'
propertynames と propertyvalues は配置が一致するため、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_name |
URI | カスタマーアカウント名 | あり |
本文パラメータ
アプリケーション/JSON コンテンツとして:
{
"controllerURL": "http://<my-custom-hostname:port>"
}
アラートの 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 の設定がリセットされるため、コントローラをリセットする必要はありません。