The way we did this was to configure the visualization of the data table with a query for terms in the field containing the stack. Keep in mind, however, that for aggregation in the .raw version of your field, otherwise you will see an analyzed (e.g. split) version of stacktraces, which is not what you want.
The second problem I encountered is the maximum size of the text that will be used for the term filter (unfortunately, I can not find the documents for this). Anything more than this is simply excluded from aggregation. I worked on this by creating an extra field containing the first 200 characters of the stacktrace, which I then use for aggregation.
grok {
match => [ "exceptionTxt","(?<exceptionTxtShort>^.{0,200})"]
}
, . - / , .