nparaddi-walmart all time


 1 Collaborator
Nagappa Paraddi

 1 Patch
06947df149626dff539c24dc95257759b2a42709

06947df149626dff539c24dc95257759b2a42709 | Author: nparaddi-walmart <121308948+nparaddi-walmart@users.noreply.github.com>
 | 2023-09-11 10:16:47-07:00

    add support for publishing percentile time series for the histogram m… (#1689)
    
    * add support for publishing percentile time series for the histogram metrics cql-requests, cql-messages and throttling delay.
    
    Motivation:
    
    Histogram metrics is generating too many metrics overloading the promethous servers. if application has 500 Vms
    and 1000 cassandra nodes, The histogram metrics generates 100*500*1000 = 50,000,000 time series every 30 seconds.
    This is just too much metrics.  Let us say we can generate percentile 95 timeseries for for every cassandra nodes,
    then we only have 1*500 = 500 metrics and in applciation side, we can ignore the _bucket time series. This way there
    will be very less metrics.
    
    Modifications:
    add configurable pre-defined percentiles to Micrometer Timer.Builder.publishPercentiles. This change is being added to
    cql-requests, cql-messages and throttling delay.
    
    Result:
    Based on the configuration, we will see additonal quantile time series for cql-requests, cql-messages and throttling delay
    histogram metrics.
    
    * add support for publishing percentile time series for the histogram metrics cql-requests, cql-messages and throttling delay.
    
    Motivation:
    
    Histogram metrics is generating too many metrics overloading the promethous servers. if application has 500 Vms
    and 1000 cassandra nodes, The histogram metrics generates 100*500*1000 = 50,000,000 time series every 30 seconds.
    This is just too much metrics.  Let us say we can generate percentile 95 timeseries for for every cassandra nodes,
    then we only have 1*500 = 500 metrics and in applciation side, we can ignore the _bucket time series. This way there
    will be very less metrics.
    
    Modifications:
    add configurable pre-defined percentiles to Micrometer Timer.Builder.publishPercentiles. This change is being added to
    cql-requests, cql-messages and throttling delay.
    
    Result:
    Based on the configuration, we will see additonal quantile time series for cql-requests, cql-messages and throttling delay
    histogram metrics.
    
    * using helper method as suggested in review
    
    * fixes as per review comments
    
    * add configuration option which switches aggregable histogram generation on/off for all metric flavors [default=on]
    
    * updating java doc
    
    * rename method to publishPercentilesIfDefined
    
    * renmae method
    
    ---------
    
    Co-authored-by: Nagappa Paraddi <nparaddi@walmartlabs.com>