Add client_requests timing module to metrics #802
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Questions:
metrics
crate version than oracles?metrics
to latest api style and putting a>=0.22
on the dep.Add a timing span to anything that can be instrumented and returns a Result.
Example: ```ignore let client = GatewayClient::new(channel);
client.info(req) .with_timing("iot_fetch_info") .await?; ```
This will result in a prometheus metric
Install the
ApiTimingLayer
.Adding
.with_span_events(FmtSpan::CLOSE)
to a regular format layer will print the timing spans to stdout as well.Example:
ignore tracing_subscriber::registry() .with(tracing_subscriber::fmt::layer().with_span_events(FmtSpan::CLOSE)) .with(metrics::client_requests::client_request_timing_layer("histogram_name")) .init();
Remove unused
install_metrics
function, replace with nestedinstall
function thatstart_metrics
delegates to. This allows us to start metrics in tests without needing to make aSettings
struct.