Class AgentOverviewDashboardService

java.lang.Object
com.flowable.platform.service.dashboard.agent.AgentOverviewDashboardService

public class AgentOverviewDashboardService extends Object
Backend for the agent overview dashboard in Hub.

The actual ES aggregation logic lives in the _flowable_AgentInvocation*Query.query resource files (see modules/flowable-platform-service/.../query/default/). This service does not encode any new query logic — it just calls the existing queries by key via QueryService.executeQuery(java.lang.String, java.lang.String, java.util.Map<java.lang.String, tools.jackson.databind.JsonNode>) and merges the results into a denormalized AgentOverviewDashboardService.Response.

Evaluator quality is pass-rate only (evaluations + passed); paired aggregations share group/size/order to keep buckets consistent.

Performance note: getDashboard(java.time.Instant, java.time.Instant, java.util.List<java.lang.String>, java.lang.String, java.lang.String) issues ~22 sequential ES round-trips per call. Two faster alternatives were evaluated (but intentionally not yet implemented):

  • Elasticsearch _msearch — one HTTP round-trip with an NDJSON body of all sub-queries. Big latency win, but needs new methods on ElasticsearchClient / SearchService / QueryService
  • CompletableFuture parallelism — keeps N round-trips but runs them concurrently. Requires a dedicated I/O thread pool sized to match the Rest5Client connection pool (the default ForkJoinPool.commonPool() is sized for CPU work, would starve unrelated JVM work, and would queue threads on connection acquisition).