End User Monitoring (EUM)

cancel
Showing results for 
Search instead for 
Did you mean: 

EUM Pages & Ajax Request limit alert

SOLVED
Builder

EUM Pages & Ajax Request limit alert

Hi everyone,

 

Regarding the 500 limit for each EUM Pages and Ajax Requests, I'm wondering whether it's possible to have some kind of email alert or something to indicate it's nearing the limit. I'm aware there's a message at the bottom of the page that indicates if you're over the limit, but I don't want to be constantly watching for this every day.

Since our single-page browser app may have dynamic segments in the URLs (where at any time which devs could introduce new pages with dynamic segments) which would generate unique pages/ajax that count toward the limit, if this happens to slip past our custom naming rules filter the limit could be hit very quickly.

 

Or if there are other suggestions to work around this issue, I'd be happy to hear it.

 

Thanks!

EUM Pages & Ajax Request limit alert
5 REPLIES 5

Re: EUM Pages & Ajax Request limit alert

Hi Jlee,

 

This is a known limitation and an enhancement request is in place to track this. With this said, there is no documented way available to achieve this. A workaround would be to use the APIs which the Controller UI uses to query all the pages and AJAX. However the shortcoming is that these APIs are undocumented and used for UI service only, hence they might change without prior notice. But it will solve the purpose for now.

 

You can run the following sequence using curl (or equivalent in any other programming language):

# this works for controller version 4.2 version of Controllers
# generate token using <username>%40<account>:<password>
token=`echo -n "mayuresh%40mvk:AppD" |base64 -b 0`

# this works for controller version 4.3 version of Controllers
# generate token using <username>@<account>:<password>
token=`echo -n "mayuresh@mvk:AppD" |base64 -b 0`
curl -v --cookie-jar cookie2.txt -H"Authorization:Basic ${token}" "http://172.16.87.133:8090/controller/auth?action=login" curl -XPOST -H"Content-Type:application/json;charset=UTF-8" -H"Acceding:gzip, deflate" -H"Accept:application/json, text/plain, */*" --cookie cookie2.txt -v --data '{"applicationId":50,"addId":null,"timeRangeString":"last_15_minutes|BEFORE_NOW|-1|-1|15","fetchSyntheticData":false}' "http://172.16.87.133:8090/controller/restui/pageList/getEumPageList" 2>/dev/null|python -m json.tool

Here the call is:

/controller/restui/pageList/getEumPageList

And in the document takes in the application id as input in the document

--data '{"applicationId":1196,"addId":null,"timeRangeString":"last_15_minutes|BEFORE_NOW|-1|-1|15","fetchSyntheticData":false}'

Here the "applicationId" field provides the application id. You can get the application id form the URL in the browser when you are in the required EUM app in the controller UI.

 

Output:

{
    "ajaxLimit": 2000,
    "numOfAdds": 0,
    "pageIFrameLimit": 2000,
    "pageList": [
        {
            "addId": 997943,
            "ajaxCallBackExecutionTime": -1,
            "ajaxRequestErrorPerMinute": -1,
            "ajaxResponseDownloadTime": -1,
            "domBuildingTime": -1,
            "domReadyTime": -1,
            "endUserResponseTime": -1,
            "firstByteTime": -1,
            "frontEndTime": -1,
            "htmlDownloadAndDomBuildingTime": -1,
            "htmlDownloadTime": -1,
            "internalName": "www1.nn.com.au/online_customers/static",
            "name": "www1.nn.com.au/online_customers/static",
            "outlierRequests": -1,
            "pageViewWithJavaScriptErrorPerMinute": -1,
            "requestPerMinute": -1,
            "resourceFetchTime": -1,
            "responseAvailableTime": -1,
            "serverConnectionTime": -1,
            "synthetic": false,
            "totalNumberOfEndUserRequests": -1,
            "totalOutlierRequests": -1,
            "totalPageViewWithJavaScriptError": -1,
            "type": "BASE_PAGE"
        },
.....

This output can now be parsed to get the number of items per "type".

 

Once you have these output parsed, you can create your custom metrics from these values as defined at https://docs.appdynamics.com/display/PRO43/Extensions+and+Custom+Metrics for 4.3 and https://docs.appdynamics.com/display/PRO42/Extensions+and+Custom+Metrics for 4.2.

 

Once you have the custom metrics in place, you can use them in your Alerting and Dashboards.

 

Let us know if this helps.

 

Regards,

Mayuresh

 

(Please click the Accept solution button if you find this solution useful)

Builder

Re: EUM Pages & Ajax Request limit alert

Hi Mayuresh,

 

I see. That's unfortunate there's nothing out of the box at the moment. Thanks for the detailed API approach to doing it! We'll just monitor the numbers manually while we're still in the setup phase and logging in often.

 

Thanks!

James

Adventurer

Re: EUM Pages & Ajax Request limit alert

Mayuresh,

 

We actually implemented this and were using it to monitor the page counts.

 

However, we suddenly started getting "HTTP Status 403 - Forbidden" errors when we try to fetch the data using:

 

 

curl -XPOST '-HContent-Type:application/json;charset=UTF-8' '-HAcceding:gzip, deflate' '-HAccept:application/json, text/plain, */*' --cookie cookie2.txt -v --data '{"applicationId":30553,"addId":null,"timeRangeString":"last_15_minutes|BEFORE_NOW|-1|-1|15","fetchSyntheticData":false}' https://ourname.saas.appdynamics.com/controller/restui/pageList/getEumPageList

 

 

I'm assuming the rest url/endpoint has changed.

 

I also tried https://ourname.saas.appdynamics.com/controller/rest/pageList/getEumPageList, but it did not work.

 

Can you tell us how we might access that now?

 

Or, can you tell us id the notification feature has been enabled for this so that we don't have to script it?

 

Thanks!

-- Matt

Re: EUM Pages & Ajax Request limit alert

Hi Matt,

 

What version are you on now?

 

Regards,

Mayuresh

Adventurer

Re: EUM Pages

Mayuresh,


Assuming that is accessed from the About AppDynamics dialog in the menu,

"AppDynamics Version 4.3.7.0, build 2386".

Thanks!

-- Matt