24 lines
806 B
Rust
24 lines
806 B
Rust
use pokedex_api::telemetry::{Telemetry, UpstreamRequestOutcome};
|
|
use std::time::Duration;
|
|
|
|
#[test]
|
|
fn records_http_and_upstream_metrics_in_prometheus_text_format() {
|
|
let telemetry = Telemetry::new("test-service");
|
|
let metrics = telemetry.metrics();
|
|
|
|
metrics.record_http_request("GET", "/pokemon/{name}", 200, Duration::from_millis(10));
|
|
metrics.record_upstream_request(
|
|
"pokeapi",
|
|
"pokemon_species",
|
|
UpstreamRequestOutcome::Success,
|
|
Duration::from_millis(5),
|
|
);
|
|
let rendered = telemetry
|
|
.render_prometheus()
|
|
.expect("metrics should render as text");
|
|
|
|
assert!(rendered.contains("http_server_requests"));
|
|
assert!(rendered.contains("upstream_client_requests"));
|
|
assert!(rendered.contains("service_name=\"test-service\""));
|
|
}
|