In terms of Kibana and the error that you have in your screenshot, it's pointing out that you have some documents that have a missing value for elapsed_time
and that you should do a check first. So with that and assuming that you want to allow hours to be larger than 24 (or else in a date/time format, that would increment the day field), here is an example:
if (doc['elapsed_time'].size()==0) {
return ""
} else {
long elapsed_time=(long)doc["elapsed_time"].value*1000;
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long daysInMilli = hoursInMilli * 24;
// long elapsedDays = elapsed_time / daysInMilli;
// elapsed_time = elapsed_time % daysInMilli;/
long elapsedHours = elapsed_time / hoursInMilli;
elapsed_time = elapsed_time % hoursInMilli;
long elapsedMinutes = elapsed_time / minutesInMilli;
elapsed_time = elapsed_time % minutesInMilli;
long elapsedSeconds = elapsed_time / secondsInMilli;
String my_answer = String.format('%02d:%02d:%02d', new def[] {(int)elapsedHours, (int)elapsedMinutes, (int)elapsedSeconds});
return my_answer;
}
I left elapsedDays
as a comment just in case you did want to use it.