Skip to content

Commit b32f6eb

Browse files
Merge pull request #815 from Mark-Simulacrum/next
Reduce metric cardinality
2 parents a3078e1 + b0d8228 commit b32f6eb

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

src/server/routes/agent.rs

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::agent::Capabilities;
22
use crate::experiments::{Assignee, Experiment};
33
use crate::prelude::*;
4-
use crate::results::{DatabaseDB, EncodingType, ProgressData};
4+
use crate::results::{DatabaseDB, EncodingType, FailureReason, ProgressData, TestResult};
55
use crate::server::agents::WorkerInfo;
66
use crate::server::api_types::{AgentConfig, ApiResponse};
77
use crate::server::auth::{auth_filter, AuthDetails};
@@ -238,11 +238,41 @@ impl RecordProgressThread {
238238
.with_label_values(&["record_progress_worker"])
239239
.observe(start.elapsed().as_secs_f64());
240240

241+
let to_metric = |f: &FailureReason| match f {
242+
FailureReason::Unknown => "unknown",
243+
FailureReason::OOM => "oom",
244+
FailureReason::NoSpace => "no-space",
245+
FailureReason::Timeout => "timeout",
246+
FailureReason::ICE => "ice",
247+
FailureReason::NetworkAccess => "network-access",
248+
FailureReason::Docker => "docker",
249+
FailureReason::CompilerDiagnosticChange => "compiler-diagnostic-change",
250+
FailureReason::CompilerError(_) => "compiler-error",
251+
FailureReason::DependsOn(_) => "dependency",
252+
};
253+
241254
metrics
242255
.crater_progress_report
243256
.with_label_values(&[
244257
ex.name.as_str(),
245-
&result.data.result.result.to_string(),
258+
// Reduce cardinality on the error kind to reduce # of distinct
259+
// metrics created.
260+
&match &result.data.result.result {
261+
TestResult::BrokenCrate(r) => format!("broken-crate:{}", r),
262+
TestResult::PrepareFail(r) => {
263+
format!("prepare-fail:{}", to_metric(r))
264+
}
265+
TestResult::BuildFail(r) => {
266+
format!("build-fail:{}", to_metric(r))
267+
}
268+
TestResult::TestFail(r) => {
269+
format!("test-fail:{}", to_metric(r))
270+
}
271+
TestResult::TestSkipped => "test-skipped".to_owned(),
272+
TestResult::TestPass => "test-pass".to_owned(),
273+
TestResult::Skipped => "skipped".to_owned(),
274+
TestResult::Error => "error".to_owned(),
275+
},
246276
])
247277
.inc();
248278
}

0 commit comments

Comments
 (0)