Optimize flow queries in case no DSCP or ECN filter exists

Description

When topK flow summaries/series are queried for applications, conversation, or hosts and no DSCP or ECN filter exists then precalculated aggregations for

  • exporter/interface

  • exporter/interface/dscp

  • exporter/interface/ecn
    could be used as the parent "aggregation" for calculating the contribution of "Other" application, conversation, or hosts (cf. ).

These additional topK aggregations could be calculated for applications, conversations, and host:

  • exporter/interface/application, exporter/interface/conversation, exporter/interface/host

  • exporter/interface/dscp/application, exporter/interface/dscp/conversation, exporter/interface/dscp/host

  • exporter/interface/ecn/application, exporter/interface/ecn/conversation, exporter/interface/ecn/host

However, this means a lot more storage for reduced query time work.

Another optimization may be to store different aggregations in different indexes ("Split your data into multiple indices if your query has a filter field and its value is enumerable."; cf. https://tech.ebayinc.com/engineering/elasticsearch-performance-tuning-practice-at-ebay/)

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Stefan Wachter January 21, 2021 at 2:34 PM

This also provides backwards compatibility. In case no DSCP/ECN filter is set the aggregations get used that were generated before the ToS feature was added.

Fixed

Details

Assignee

Reporter

HB Backlog Status

Sprint

Fix versions

Priority

PagerDuty

Created January 11, 2021 at 2:59 PM
Updated May 18, 2021 at 4:27 PM
Resolved May 18, 2021 at 4:27 PM