Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.8-next
    sv-translation
    languageen

    This page describes the Events and Suppression API methods you can use to create, manage, and monitor events and action suppression.

    PLEASE REVIEW FOR CONSISTENCY AND ACCURACY WITH OTHER APPDYNAMICS APIS. 

    • API title name
    • Inconsistent format of parameter name in the same API:
      • dashes ( - )—time-range-type. Should be timeRangeType.
      • underscores ( _ )—application_id
      • missing capitalization—eventtype. Should be eventType.
      • full caps—BEFORE_NOW. Should be before_now or beforeNow.
      • use of quotes around parameters
      • misspelled value in the Create a New Action Suppression method action types: SPECITIC. Should be specific.

    Retrieve All Health Rule Violations in a Business Application

    Returns all health rule violations that have occurred in an application within a specified time frame. 

    URI 

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    application_id

    URI

    Provide either the application name or application id.

    Yes

    time-range-type

    Query

    Possible values are:
    BEFORE_NOW 
    To use the "BEFORE_NOW" option, you must also specify the "duration-in-mins" parameter.
    BEFORE_TIME  
    To use the "BEFORE_TIME" option, you must also specify the "duration-in-mins" and "end-time" parameters.
    AFTER_TIME
    To use the "AFTER_TIME" option, you must also specify the "duration-in-mins" and "start-time" parameters.

    BETWEEN_TIMES

    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

    Duration (in minutes) to return the metric data.

    If time-range-type is BEFORE_NOW, BEFORE_TIME, or AFTER_TIME

    start-time

    Query

    Start time (in milliseconds) from which the metric data is returned.

    If time-range-type is AFTER_TIME or BETWEEN_TIMES

    end-time

    Query

    End time (in milliseconds) until which the metric data is returned.

    If time-range-type is BEFORE_TIME or BETWEEN_TIMES

    output

    Query

    HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

    No

    No Format
    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&amp;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&amp;incident=268</deepLinkUrl>
      <description>AppDynamics has detected a problem with Node &lt;b&gt;FulfillmentClient&lt;/b&gt;.&lt;br&gt;&lt;b&gt;CPU utilization is too high&lt;/b&gt; started violating and is now &lt;b&gt;warning&lt;/b&gt;.&lt;br&gt;All of the following conditions were found to be violating&lt;br&gt;For Node &lt;b&gt;FulfillmentClient&lt;/b&gt;:&lt;br&gt;1) Hardware Resources|CPU|%Busy Condition&lt;br&gt;&lt;b&gt;%Busy's&lt;/b&gt; value &lt;b&gt;76.0&lt;/b&gt; was &lt;b&gt;greater than&lt;/b&gt; the threshold &lt;b&gt;75.0&lt;/b&gt; for the last &lt;b&gt;30&lt;/b&gt; minutes&lt;br&gt;</description>
    </policy-violation>
    </policy-violations>


    Anchor
    retrieve-event-data
    retrieve-event-data
    Retrieve Event Data

    You can capture data for the event types listed in the event-types 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

    summaryQueryProvides the summary for the event.Yes
    commentQueryProvides the comments (if any) for the event.No
    eventtypeQueryAPPLICATION_DEVELOPMENTYes

    time-range-type

    Query

    Possible values are:
    BEFORE_NOW 
    To use the "BEFORE_NOW" option, you must also specify the "duration-in-mins" parameter.
    BEFORE_TIME  
    To use the "BEFORE_TIME" option, you must also specify the "duration-in-mins" and "end-time" parameters.
    AFTER_TIME
    To use the "AFTER_TIME" option, you must also specify the "duration-in-mins" and "start-time" parameters.

    BETWEEN_TIMES

    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 BEFORE_NOW, BEFORE_TIME, or AFTER_TIME

    start-time

    Query

    Specify the start time (in milliseconds) from which the metric data is returned.

    If time-range-type is AFTER_TIME or BETWEEN_TIMES

    end-time

    Query

    Specify the end time (in milliseconds) until which the metric data is returned.

    If time-range-type is BEFORE_TIME or BETWEEN_TIMES

    event-types

    Query

    Specify the comma-separated list of event types for which you want to retrieve event information. See the Events Reference for the valid event types.

    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:

    • INFO
    • WARN
    • ERROR

    In the UI these values become Info, Warning, and Critical.

    Yes

    output

    Query

    HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

    No

    tierQueryName of the tier in the applicationNo
    Info

    This API can retrieve 600 events at a time.

    Example

    Retrieve the list of events of type APPLICATION_ERROR or DIAGNOSTIC_SESSION of any severity that occurred in the specified time range:

    No Format
    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&amp;eventSummary=44658</deepLinkUrl>
    </event>
    </events>


    Create Events

    Application deployment events notify AppDynamics when you upgrade your application, push new code, etc. This lets you correlate these application deployment activities with other data inside AppDynamics. This is useful for regression analysis, root cause analysis, and performance studies. It is beneficial to inject your application deployment event into AppDynamics as part of the build process for deploying a new version of your application.

    The AppDynamics REST API lets you integrate events of type "APPLICATION_DEPLOYMENT" with other systems.

    For example, to create an event automatically in your 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

    Appd permissions
    Width800px

    Creating events requires the Create Events permission. See Application 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

    severityQueryProvide a severity level. Allowed values include:
    • "INFO"
    • "WARN"
    • "ERROR"

    In the UI, these become "Info", "Warning", and "Critical"

    Yes

    Create a Custom Event

    You can create custom events to be reported in the AppDynamics event viewer and in the events panels on the AppDynamics dashboards. See Monitor Events to learn how to filter on your custom events so that you can find them. Then you can create alerts triggered by these events as you do for AppDynamics standard events.

    You should receive the event ID after the successful invocation of the request.

    Roles and Permissions

    Appd permissions
    Width800px

    Creating a custom event requires the Create Events permission. See Application 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 a comment for the event.

    No

    severityQuery

    Provide a severity level. Allowed values include:

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

    In the UI, these become "Info", "Warning", and "Critical"

    Yes

    eventtype

    Query

    CUSTOM

    Yes

    customeventtypeQueryProvide a name for the "type". For example, the source could be "nagios".No
    nodeQueryProvide the affected node name.No
    tierQueryProvide the affected tier name.Yes, if node and bt are specified
    btQueryProvide the affected business transaction name.No
    propertynamesQueryProvide a property name as a pair, i.e., the "key".No, but if one element of the pair is defined, the other must be defined also
    propertyvaluesQueryProvide the property value as a pair, i.e., the "value".

    No, but if one element of the pair is defined, the other must be defined also


    Example 

    No Format
    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'
    Note

    Notice the pattern for custom properties: propertynames and propertyvalues get matched up by order position, so to set N property values, you need N occurrences of propertynames and N occurrences of propertyvalues.


    Create Custom URLs for Notifications

    Single tenants in a multi-tenant Controller instance should use this API method to specify a custom or vanity URL for notification purposes. Instead of a URL such as paid8.appdynamics.com being displayed as the host, the custom URL can be displayed as mycompany.appdynamics.com in the notification.

    URI

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    customer_nameURIThe customer account nameYes

    Body Parameter 

    As Application/JSON content:

    Code Block
    {
       "controllerURL": "http://<my-custom-hostname:port>"
    }
    Info

    If the URL in the alerts is invalid, you can set it using the following curl command:

    No Format
    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
    No Format
    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

    For example:

    No Format
    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

    There is no need to reset the Controller as upgrading it will reset the deep link URL settings.

    Create and Delete Action Suppressions

    By default any response is in JSON, although XML can be requested by using the following header:
    Name : Accept
    Value : application/vnd.appd.cntrl+xml;v=1

    Retrieve All Existing Action Suppressions

    Use this to retrieve a list of all existing action suppressions. 

    URI

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    account_id URIThe account IDYes

    application_id

    URI

    The application ID

    Yes

    Example request to get all action suppressions:

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

    Example response:

    No Format
    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"}]}

    Retrieve a Specific Action Suppression by ID

    Use this to get an action suppression by the specified ID. 

    URI

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    account_idURIThe account id.Yes

    application_id

    URI

    The application id.

    Yes

    actionsuppressions_idURIThe action suppression id.Yes

    Example request:

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

    Example response:

    No Format
    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"}}

    Create a New Action Suppression

    This is a POST request that should return a 201 - created response.

    URI

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    account_idURIThe account id.Yes

    application_id

    URI

    The application id.

    Yes

    namebody keyThe name of the action suppression window.Yes
    timeRangebody key

    The start and end time of the window.
    Includes:
    startTimeMillis, eg 2014-10-25T04:16:57+0000
    endTimeMillis, eg  2014-10-25T05:16:57+0000

    Yes
    healthRuleIdsbody keyThe ids of the affected health rules. If not provided, all rules affectedNo
    affectsbody key

    Type of entity and corresponding IDs

    ScopeTypeValueExample
    ApplicationAPPCovers the entire application"affects": {"type": "APP"}
    Business TransactionBTCovers one or more Business Transactions


    All Business Transactions"affects": {"type": "BT","btAffectedEntities": {"type": "ALL"}}


    Business Transactions from specific tiers"affects": {"type": "BT","btAffectedEntities": {"type": "WITHIN_TIERS","tiers": [11,12]}}  where 11,12 are Tier Ids


    Specific Business Transactions by id "affects": {"type": "BT","btAffectedEntities": {"type": "SPECIFIC","bts": [1,2]}} where 1,2 are BT Ids


    Business Transactions that match criteria

    "affects": {"type": "BT","btAffectedEntities": {"type": "CRITERIA","matchesOperator": "CONTAINS","matchesValue": "pojo"}}
    where "matchesOperator" can be:

    • CONTAINS
    • EQUALS
    • STARTS
    • ENDS
    • REGEX_VALUE
    TierTIERCovers one or more tiers


    All tiers"affects": {"type": "TIER","tierAffectedEntities": {"type": "ALL"}}


    Specific tiers"affects": {"type": "TIER","tierAffectedEntities": {"type": "SPECIFIC","tiers": [11,12]}} where 11,12 are Tier Ids
    NodeNODECovers one or more nodes


    All nodes"affects": {"type": "NODE","nodeAffectedEntities": {"type": "ALL","nodeType": "ALL"}}


    Nodes belonging to specific tiers"affects": {"type": "NODE","nodeAffectedEntities": {"type": "WITHIN_TIERS","nodeType": "ALL","tiers": [11,12]}} where 11,12 are Tier Ids


    Specific nodes"affects": {"type": "NODE","nodeAffectedEntities": {"type": "SPECIFIC","nodeType": "ALL","nodes": [9,10]}} where 9,10 are Node Ids


    Nodes that match criteria
     

    "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

    where "matchesOperator" can be:

    • CONTAINS
    • EQUALS
    • STARTS
    • ENDS
    • REGEX_VALUE
    MachineMACHINECovers one or more machines"affects": {"type": "MACHINE","machineAffectedEntities": {"type": "SPECITIC","machines": [4,5]}} where 4,5 are Machine Ids
    (info) note you must spell the value as "SPECITIC" due to a typo in the underlying code.
    Yes

    Example request

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

    Header

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

    Body

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


    or

    No Format
    {"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]}}}


    Delete a Specific Action Suppression by ID

    This is a DELETE request that should return a 204 - No Content message.

    URI

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

    Input parameters

    Parameter Name

    Parameter Type

    Value

    Mandatory

    account_idURIThe account idYes

    application_id

    URI

    The application id

    Yes

    actionsuppression_idURIThe id of the action suppression to be deletedYes—The Alert and Respond APIs let you manage and monitor events, health rules, and other aspects of the AppDynamics alert and respond features.

    ...