40 lines
1.3 KiB
Rust
40 lines
1.3 KiB
Rust
#[test]
|
|
fn build_info_parser_extracts_expected_labels() {
|
|
let metrics = r#"
|
|
# HELP gateway_build_info build info
|
|
# TYPE gateway_build_info gauge
|
|
gateway_build_info{service="gateway",version="1.2.3",git_sha="abc"} 1
|
|
runner_build_info{service="runner",version="2.0.0",git_sha="def"} 1
|
|
unrelated_metric 5
|
|
"#;
|
|
|
|
let info = api::extract_build_info(metrics);
|
|
assert_eq!(info.len(), 2);
|
|
assert!(
|
|
info.iter()
|
|
.any(|i| i.service == "gateway" && i.version == "1.2.3" && i.git_sha == "abc")
|
|
);
|
|
assert!(
|
|
info.iter()
|
|
.any(|i| i.service == "runner" && i.version == "2.0.0" && i.git_sha == "def")
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn build_info_snapshot_has_required_services() {
|
|
let metrics = r#"
|
|
gateway_build_info{service="gateway",version="1.2.3",git_sha="abc"} 1
|
|
aggregate_build_info{service="aggregate",version="1.0.0",git_sha="aaa"} 1
|
|
projection_build_info{service="projection",version="1.0.0",git_sha="bbb"} 1
|
|
runner_build_info{service="runner",version="2.0.0",git_sha="ccc"} 1
|
|
"#;
|
|
|
|
let info = api::extract_build_info(metrics);
|
|
for required in ["gateway", "aggregate", "projection", "runner"] {
|
|
assert!(
|
|
info.iter().any(|i| i.service == required),
|
|
"missing build_info for service={required}"
|
|
);
|
|
}
|
|
}
|