Hello,
I figured out that AppDynamics detects every RuntimeException and dependencies between triggered exceptions.
But what about normal Exception that can be catched? Is it possible to tell AppDynamics that there was some catched Exception? For example SQLException if there was no connection to database.
Thank you.
Hi,
We see two BTs with same number under different tiers we suspect it could be the case that you are referring to BT
from other tier which does not have raised errors, let us know if this is the case,
Regarding missing exceptions in snapshots, we could see the exception logged fine under Troubleshoot -> errors -> exceptions -> select mysql communication exception -> select "stacktraces for this exception" tab as listed below and also we could see the exception stack trace part of BT snapshot error details as listed below , please be sure that it could be the case that the exception stacktrace could have logged out of BT context for the BT snapshot execution you have drilldown as we could see BT is marked error for the exception with mysql communication logged and found in error details, Let us know if that clarifies, please point to the snapshot details that you are referring to in specific to debug further?
We see your saas controller is scheduled for upgrade to 3.7.15 on 2/27/2014 and you should get notification accordingly, before ugprade process started.
Let us know if that answers your queries.
Regards,
Arun
Hi,
Yes, we confirm that appdynamics detects exception caught in catch block of try catch (try{} catch(exception e)) structure if the sqlexception is logged using supported logger (ex: java util logging , log4j framework etc)
Ex:
try{
//code that raises sqlexception
}catch(SQLException e){
LOGGER.error("caught SQLException while accessing database in x api", e.fillInStackTrace());
}
Hope that answers your query.
refer docs for more indo: http://docs.appdynamics.com/display/PRO13S/Configure+Error+Detection#ConfigureErrorDetection-ErrorId...
Regards,
Arun
Hello again,
I tested Java Logger with Level.Sever and j4log 2 with logger.error().
Following problems:
1. When i use Java Logger errors are displayed under Troubleshoot -> Errors but Business Transactions are not marked as erros (Confguration is set to "Markt as Error").
2. Log4j is not even detected under Troubleshoot. Example: logger.error("SQLException; " + e.getCause() + "; " + e.getMessage()); Tested with Log4j 1.2 too. Log file with errors is generated, but no display in AppDynamics.
Hi,
Regarding problem on BT not marked as error, we se this happens when the error raised is out of Business transaction context(application level error logged and not during BT exexution for which snapshot collected), let us know if this is the case
- Regarding missing logged exception , we see from the method signature provided your code have logged error message instead exception , Can you change the webapp code to log the error with excepotion e.fillInStackTrace() method and see if that makes any difference: http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html#error%28java.lang.Object,...
the logged exception message raised using logger.error(String) could be categories as log4j warn messages , let us know if that information helps
Regards,
Arun
Hello,
1. Error is logged within business transaction context but transaction completes (end user does not see exception). The transaction is marked as error snapshot on specific appserver - errors view but not under business transactions - errors view.
As i see only runtime exceptions are marked as error transactions within Business Transactions view.
2. To add Throwable component and to log trace unfortunately did not change anything for log4j. Everything works well within Tomcat logs.
LOGGER.error(e.fillInStackTrace() , e);
Hi,
Can you please send the screenshots depicting the issue in addition to agent logs and tomcat server logs for better clarity, also the method signature is Logger.error(<string>, e.fillinstacktrace());
Regards,
Arun
Screenshots for Standart Java Logger:
1. App Dashboard = 0 Errors
2. Transaction = 0 Errors
3. Backend Server View = 11 Errors
4. Failed Transcation Flow
5. Error Details
Logs for log4j (Tried with LOGGER.fatal(e.fillInStackTrace(), e.fillInStackTrace())) :
1. log4j errors log.
2. log4j properties file.
Dou you know when it is planned to update saas controller to 3.7.15?
Hi,
Please be sure that agent will have limit on the number of snapshots collected per minutes, Can you please check the exception sunder screen Troubleshoot -> Errors -> Exceptions tab screen (refer exception tab in 3.png)
We request you to try the following changes in code level , by default agent should capture the exception stack trace logged at error level even if logged by java util logging api as well,
in try block :
throw new(new SQLException("message");
in catch block:
LOGGER.fatal(("message", e.fillInStackTrace())) :
regarding other query, can you please list the saas URL details so that we can confirm the upgrade schedule for the same?
Please keep us posted how it goes.
Regards.
Arun
Hello,
Ok I see log4j exceptions now. I dont know why i could not see them earlier... i was sure i checked everything... hm.
For transactions it is still the same even with log4j: they are not marked as Error- Transactions, only under specific App-Server view (like on screenshots). Do you know if it is intentionally?
My controller URL is https://testapm.saas.appdynamics.com. We need some new dashboard functionality under 3.7.15. But controller should stay online tomorrow 14 -16 CET. 🙂
Thank you.
Hi,
We see two BTs with same number under different tiers we suspect it could be the case that you are referring to BT
from other tier which does not have raised errors, let us know if this is the case,
Regarding missing exceptions in snapshots, we could see the exception logged fine under Troubleshoot -> errors -> exceptions -> select mysql communication exception -> select "stacktraces for this exception" tab as listed below and also we could see the exception stack trace part of BT snapshot error details as listed below , please be sure that it could be the case that the exception stacktrace could have logged out of BT context for the BT snapshot execution you have drilldown as we could see BT is marked error for the exception with mysql communication logged and found in error details, Let us know if that clarifies, please point to the snapshot details that you are referring to in specific to debug further?
We see your saas controller is scheduled for upgrade to 3.7.15 on 2/27/2014 and you should get notification accordingly, before ugprade process started.
Let us know if that answers your queries.
Regards,
Arun
Thank you for your effort.
I know that there is information about these exceptions with specific snapshots under troubleshoot -> errors.
But i still cant not understand why there are no errors displayed under transaction /WebShop/Shop errors details because the errors occur within this transaction.
Anyway, thank you for your help.
Regards,
Alex
Hi Alex,
We suspect it could be data refresh issue or data could have rolled out by the time you have visisted app/bt dashboard, as we could see the error details in both BT , app and tier level view when selecting high time trends as listed below, can you please select custom time with considerable gap in Ui and see if that helps:
Can you please create custom time and share with us as the time zone in refernce to the screenshot provided to us is specific to browser timezone and could be different for the time we selected in UI? if there is any disconnect.
Regards,
Arun
If you compare errors displayed under transaction "WebShop/Shop" with errors under server "WebShop" than yes they are the same (this 0.3%). But if you compare with errors of server "WebBackend" you will see that they are not the same. On "WebBackend" there are snapshots based on MySQL errors that you will not find under transaction view.
So as I understand transaction is marked as an error transaction only if there was an error on Entry-Point App Server. I dont know if it is intentionally but i think transaction should be marked as error independent from the place where the error occured.
P.S I hope controller update ist not 14 -16 clock CET 🙂
Hi Alex,
Yes you are right, if error raised on originating tier than you will see the BT is marked as error and if error raised on recieving/continuing tier than the errors rasied on the receiving tier will not be part of the originating tier and the Originating BT user experience will not get affect this is how the product works, let us know if that clarifies the error detection functionality.
You should get notified before and after saas upgrade. Hope that helps.
Regards,
Arun