linkerd2/proto
Eliza Weisman 915f08ac4c
Store proxy latencies in a structure that matches controller histogram (#11)
The proxy currently stores latency values in an `OrderMap` and reports every observed latency value to the controller's telemetry API since the last report. The telemetry API then sends each individual value to Prometheus. This doesn't scale well when there are a large number of proxies making reports. 

I've modified the proxy to use a fixed-size histogram that matches the histogram buckets in Prometheus. Each report now includes an array indicating the histogram bounds, and each response scope contains a set of counts corresponding to each index in the bounds array, indicating the number of times a latency in that bucket was observed. The controller then reports the upper bound of each bucket to Prometheus, and can use the proxy's reported set of bucket bounds so that the observed values will be correct even if the bounds in the control plane are changed independently of those set in the proxy.

I've also modified `simulate-proxy` to generate the new report structure, and added tests in the proxy's telemetry test suite validating the new behaviour.
2018-02-07 18:02:59 -08:00
..
common Move EosCtx to common for Tap and Telemetery (#204) 2018-01-24 15:48:00 -08:00
controller Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
google/protobuf Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
proxy Store proxy latencies in a structure that matches controller histogram (#11) 2018-02-07 18:02:59 -08:00
public Move healthcheck proto to separate file, use throughout (#150) 2018-01-17 11:15:38 -08:00