-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add functionality to flush metrics periodically and a few metrics (latency, total requests sent, ...) #344
Comments
This sounds awesome. Some thoughts that are potentially relevant:
|
Thanks Otto for the information!
|
With this, --duration 0 will be treated as a request to infinitely execute. Other default predicates will still exist, to execution may stop when connection failures or error response codes are observed. This leaves some small tech debt: - We shouldn't need to create a foo root termination predicate - We need test coverage, but that's much to add once envoyproxy#280 or envoyproxy#344 goes in Fixes envoyproxy#333 Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Adds `--no-duration`, which will be treated as a request to infinitely continue load generation. Other default predicates will still exist, so\ execution may still stop when connection failures or error response codes are observed. This leaves some small tech debt: - We need test coverage, but that's much easier to add once #280 or #344 goes in Fixes #333 Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
#391) Add new NH statistic class CircllhistStatistic and SinkableCircllhistStatistic. CircllhistStatistic uses Circllhist under the hood to compute statistics where Circllhist is used in the implementation of Envoy Histograms. Compared to HdrHistogram Circllhist trades precision for fast performance in merge and insertion according to #115. SinkableCircllhistStatistic wraps the Envoy::Stats::Histogram interface and is used to flush histogram value to downstream Envoy stats Sinks. Linked Issues: #344 Testing: unit tests
…figure stat sinks in NH (#418) Add CLI flags - `--stats-sinks` - Stats sinks (in json or compact yaml) where Nighthawk metrics will be flushed. This argument is intended to be specified multiple times. - `--stats-flush-interval` - Time interval (in seconds) between flushes to configured stats sinks. Default: 5 (seconds). The flags' values will be used to update [`stats_sinks `](https://github.com/envoyproxy/envoy/blob/54652f03ea0b3504bd4d64e8ae31985be2892a95/api/envoy/config/bootstrap/v3/bootstrap.proto#L129) and [`stats_flush_interval `](https://github.com/envoyproxy/envoy/blob/54652f03ea0b3504bd4d64e8ae31985be2892a95/api/envoy/config/bootstrap/v3/bootstrap.proto#L139) in `bootstrap.proto`. Linked Issues: #344 Testing: unit tests Docs Changes: README.md
Add the following latency histogram in benchmark_client_impl : - benchmark_http_client.latency_1xx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code 1xx - benchmark_http_client.latency_2xx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code 2xx - benchmark_http_client.latency_3xx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code 3xx - benchmark_http_client.latency_4xx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code 4xx - benchmark_http_client.latency_5xx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code 5xx - benchmark_http_client.latency_xxx | SinkableHdrStatistic | Latency (in Nanosecond) histogram of request with code <100 or >=600 Linked Issues: #344 Testing: unit tests Docs Changes: Add docs/root/statistics.md Signed-off-by: Qin Qin <qqin@google.com>
Add a flush worker to periodically flush stats to sinks. Add the functionality to configure sinks in process_impl.cc Start the flush worker in process_impl.cc when there is stats sink configured. Change the SinkableStatistic's tagExtractedName() to return `worker_id + "." + Nighthawk::Statistic::id()` which can be used in customized sinks. Linked Issues: #344 Signed-off-by: Qin Qin <qqin@google.com>
Closed this now since the metric flush functionality has been added. |
Currently Nighthawk does not flush statistics and metrics in real time during its run. We plan to add the functionality to flush Nighthawk metrics periodically (at a configured time interval) to Envoy stats Sinks following the example of what has been done in Envoy.
We also plan to add new counters and histograms to monitor
number of total requests sent (counter)
request latency (histogram)
request/response header/body size (histogram)
number of total requests blocked (counter)
/cc @mum4k
The text was updated successfully, but these errors were encountered: