Description of the problem including expected versus actual behavior. Please include screenshots (if relevant):
I was wondering if there is any way to filter out specific error code and exceptions for java. For Node.js it seems to be possible with this:
Also, for exceptions I have tried to use ignore_exceptions on elasticapm.properties based on this:
but it seems to never filter anything unless I fill in ignore_exceptions=*. I have tried *RuntimeException, *RuntimeException*, *java*, *elastic*. None of them worked.
Can anyone explain how this supposed to work?
As detailed, exception inheritance is not supported so *RuntimeException doesn't mean you get all exceptions that extend from RuntimeException. There are some examples in that link. Try setting it to the fully qualified exception class name
The agent prints all external configurations it sees at the top of its log in INFO level.
Please verify that such lines are printed for ignore_exceptions and share them.
Please try setting unnest_exceptions=false and see if it makes a difference, meaning - the exception should still be reported if it is nested, which needs to be fixed, but if it will be reported as the nesting type, it will tell us why we see this.
and it actually works this time. However, I can't really differ the error if it was done this way since the other error is also classified as having the same NestedServletException error. Is there any way to differ this?
That was only for identifying the cause of this behavior. Now that we know why this happens, I should be able to easily fix that, so that when you set ignore_exception, it will take effect on the actual reported exception (in other words - first unnest if required and then filter).
Hi @Eyal_Koren ,
I just have the same problem with unnesting and ignoring exceptions and the provided snapshot version solves it for me. Thanks.
I just have a (at least somehow) related question: Is it intended that the ignored exceptions still count against the 'Failed transaction rate'?
Hi @Nekstar, welcome to the forum as well and thanks for verifying the fix
The failed transaction rate is calculated based on the number of transaction that end with error. A transaction that ends with error is such where an exception is thrown out of the transaction-related instrumented method. For example, if the agent instruments your Servlet's doGet() method to create a transaction and this method exits with an exception, then it will be considered as a failure. Unless this exception is specifically ignored, it will be reported as error as well. So, ignoring the exception type means that error events will not be sent for them, but they can still make the transaction considered as failure.
@Ivan_Hosea Thanks for the confirmation.
The Java agent doesn't have a filtering concept as the NodeJS has.
Instead, for such things you can use ingest pipelines. In this case, I think a drop processor would be useful.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.