Skip to content

Commit c6e63ec

Browse files
authored
cleanup out the ying yang (#256)
Signed-off-by: Toby Lawrence <[email protected]>
1 parent c866646 commit c6e63ec

File tree

26 files changed

+477
-507
lines changed

26 files changed

+477
-507
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
uses: actions-rs/cargo@v1
4141
with:
4242
command: hack
43-
args: check --each-feature --no-dev-deps
43+
args: build --all --all-targets --feature-powerset
4444
test:
4545
name: Test ${{ matrix.rust_version }}/${{ matrix.os }}
4646
runs-on: ${{ matrix.os }}

metrics-exporter-prometheus/Cargo.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ push-gateway = ["reqwest", "tracing", "tokio-exporter"]
2222

2323
[dependencies]
2424
metrics = { version = "^0.17", path = "../metrics" }
25-
metrics-util = { version = "^0.10", path = "../metrics-util" }
26-
parking_lot = "0.11"
27-
thiserror = "1.0"
28-
quanta = "0.9.3"
25+
metrics-util = { version = "^0.10", path = "../metrics-util", default-features = false, features = ["recency", "registry", "summary"] }
26+
parking_lot = { version = "0.11", default-features = false }
27+
thiserror = { version = "1.0", default-features = false }
28+
quanta = { version = "0.9.3", default-features = false }
2929

3030
# Optional
3131
hyper = { version = "0.14", default-features = false, features = ["server", "tcp", "http1"], optional = true }
@@ -38,3 +38,11 @@ tracing = { version = "0.1.26", optional = true }
3838
tracing = "0.1"
3939
tracing-subscriber = "0.3"
4040
rand = "0.8"
41+
42+
[[example]]
43+
name = "prometheus_push_gateway"
44+
required-features = ["push-gateway"]
45+
46+
[[example]]
47+
name = "prometheus_server"
48+
required-features = ["tokio-exporter"]

metrics-exporter-tcp/Cargo.toml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,15 @@ keywords = ["metrics", "telemetry", "tcp"]
1717

1818
[dependencies]
1919
metrics = { version = "^0.17", path = "../metrics" }
20-
bytes = "1.0"
21-
crossbeam-channel = "0.5"
22-
prost = "0.9"
23-
prost-types = "0.9"
24-
mio = { version = "0.7", features = ["os-poll", "tcp"] }
25-
tracing = "0.1"
20+
bytes = { version = "1", default-features = false }
21+
crossbeam-channel = { version = "0.5", default-features = false, features = ["std"] }
22+
prost = { version = "0.9", default-features = false }
23+
prost-types = { version = "0.9", default-features = false, features = ["std"] }
24+
mio = { version = "0.7", default-features = false, features = ["os-poll", "tcp"] }
25+
tracing = { version = "0.1", default-features = false, features = ["attributes"] }
2626

2727
[build-dependencies]
2828
prost-build = "0.9"
29-
built = "0.4"
3029

3130
[dev-dependencies]
3231
quanta = "0.9.3"

metrics-exporter-tcp/build.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ fn main() {
55
prost_build
66
.compile_protos(&["proto/event.proto"], &["proto/"])
77
.unwrap();
8-
built::write_built_file().unwrap();
98
}

metrics-macros/Cargo.toml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,9 @@ keywords = ["metrics", "facade", "macros"]
1919
proc-macro = true
2020

2121
[dependencies]
22-
syn = "1.0"
23-
quote = "1.0"
24-
proc-macro2 = "1.0"
25-
lazy_static = "1.4"
26-
regex = "1.3"
22+
syn = { version = "1", default-features = false, features = ["derive", "parsing", "printing", "proc-macro"] }
23+
quote = { version = "1", default-features = false }
24+
proc-macro2 = { version = "1", default-features = false, features = ["proc-macro"] }
2725

2826
[dev-dependencies]
29-
syn = { version = "1.0", features = ["full"] }
27+
syn = { version = "1", features = ["full"] }

metrics-observer/Cargo.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,15 @@ publish = false
88
license = "MIT"
99

1010
[dependencies]
11-
getopts = "0.2"
12-
bytes = "1.0"
11+
bytes = "1"
1312
crossbeam-channel = "0.5"
1413
prost = "0.9"
1514
prost-types = "0.9"
16-
tui = "0.15"
15+
tui = "0.16"
1716
termion = "1.5"
1817
chrono = "0.4"
1918
metrics = { version = "^0.17", path = "../metrics" }
2019
metrics-util = { version = "^0.10", path = "../metrics-util" }
2120

2221
[build-dependencies]
2322
prost-build = "0.9"
24-
built = "0.4"

metrics-observer/build.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ fn main() {
55
prost_build
66
.compile_protos(&["proto/event.proto"], &["proto/"])
77
.unwrap();
8-
built::write_built_file().unwrap();
98
}

metrics-tracing-context/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ name = "layer"
2727
harness = false
2828

2929
[dependencies]
30-
itoa = { version = "0.4.8", default-features = false }
30+
itoa = { version = "1", default-features = false }
3131
metrics = { version = "0.17", path = "../metrics" }
3232
metrics-util = { version = "0.10", path = "../metrics-util" }
3333
lockfree-object-pool = { version = "0.1.3", default-features = false }
34-
once_cell = { version = "1.8.0", default-features = false, features = ["std"] }
34+
once_cell = { version = "1", default-features = false, features = ["std"] }
3535
tracing = { version = "0.1.29", default-features = false }
3636
tracing-core = { version = "0.1.21", default-features = false }
3737
tracing-subscriber = { version = "0.3.1", default-features = false, features = ["std"] }

metrics-tracing-context/src/tracing_integration.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl Default for Labels {
3434

3535
impl Visit for Labels {
3636
fn record_str(&mut self, field: &Field, value: &str) {
37-
let label = Label::new(field.name(), value.to_owned());
37+
let label = Label::new(field.name(), value.to_string());
3838
self.0.push(label);
3939
}
4040

@@ -44,18 +44,16 @@ impl Visit for Labels {
4444
}
4545

4646
fn record_i64(&mut self, field: &Field, value: i64) {
47-
// Maximum length is 20 characters but 32 is a nice power-of-two number.
48-
let mut s = String::with_capacity(20);
49-
itoa::fmt(&mut s, value).expect("failed to format/write i64");
50-
let label = Label::new(field.name(), s);
47+
let mut buf = itoa::Buffer::new();
48+
let s = buf.format(value);
49+
let label = Label::new(field.name(), s.to_string());
5150
self.0.push(label);
5251
}
5352

5453
fn record_u64(&mut self, field: &Field, value: u64) {
55-
// Maximum length is 20 characters but 32 is a nice power-of-two number.
56-
let mut s = String::with_capacity(20);
57-
itoa::fmt(&mut s, value).expect("failed to format/write u64");
58-
let label = Label::new(field.name(), s);
54+
let mut buf = itoa::Buffer::new();
55+
let s = buf.format(value);
56+
let label = Label::new(field.name(), s.to_string());
5957
self.0.push(label);
6058
}
6159

metrics-util/Cargo.toml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ bench = false
2121
[[bench]]
2222
name = "bucket"
2323
harness = false
24+
required-features = ["handles"]
2425

2526
[[bench]]
2627
name = "registry"
2728
harness = false
29+
required-features = ["registry"]
2830

2931
[[bench]]
3032
name = "prefix"
@@ -37,27 +39,31 @@ harness = false
3739
[[bench]]
3840
name = "router"
3941
harness = false
42+
required-features = ["layer-router"]
43+
44+
[[example]]
45+
name = "bucket-crusher"
46+
required-features = ["handles"]
4047

4148
[dependencies]
4249
metrics = { version = "^0.17", path = "../metrics" }
4350
crossbeam-epoch = { version = "0.9.2", default-features = false, optional = true, features = ["alloc", "std"] }
4451
crossbeam-utils = { version = "0.8", default-features = false, optional = true }
4552
atomic-shim = { version = "0.2", default-features = false, optional = true }
46-
aho-corasick = { version = "0.7", default-features = false, optional = true }
47-
indexmap = { version = "1.6", default-features = false, optional = true }
53+
aho-corasick = { version = "0.7", default-features = false, optional = true, features = ["std"] }
54+
indexmap = { version = "1", default-features = false, optional = true }
4855
parking_lot = { version = "0.11", default-features = false, optional = true }
4956
quanta = { version = "0.9.3", default-features = false, optional = true }
5057
sketches-ddsketch = { version = "0.1", default-features = false, optional = true }
5158
radix_trie = { version = "0.2", default-features = false, optional = true }
5259
ordered-float = { version = "2.0", default-features = false, optional = true }
5360
num_cpus = { version = "1", default-features = false, optional = true }
54-
ahash = { version = "0.7.4", default-features = false, optional = true }
61+
ahash = { version = "0.7", default-features = false, optional = true }
5562
hashbrown = { version = "0.11", default-features = false, optional = true, features = ["ahash"] }
5663

5764
[dev-dependencies]
58-
approx = "0.4"
65+
approx = "0.5"
5966
criterion = { version = "0.3", default-features = false, features = ["html_reports", "cargo_bench_support"] }
60-
lazy_static = "1.3"
6167
rand = { version = "0.8", features = ["small_rng"] }
6268
rand_distr = "0.4"
6369
getopts = "0.2"
@@ -66,15 +72,13 @@ sketches-ddsketch = "0.1"
6672
ndarray = "0.15"
6773
ndarray-stats = "0.5"
6874
noisy_float = "0.2"
69-
pretty-bytes = "0.2"
75+
ordered-float = "2.0"
7076
tracing = "0.1"
71-
tracing-appender = "0.1"
7277
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "ansi"] }
7378
crossbeam-queue = "0.3"
7479
quickcheck = "1"
7580
quickcheck_macros = "1"
76-
textplots = "0.6"
77-
mockall = "0.10"
81+
mockall = "0.11"
7882

7983
[features]
8084
handles = ["crossbeam-epoch", "crossbeam-utils"]

metrics-util/benches/bucket.rs

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,36 @@
11
use criterion::{criterion_group, criterion_main, Criterion, Throughput};
2-
use lazy_static::lazy_static;
32
use metrics_util::AtomicBucket;
43

5-
lazy_static! {
6-
static ref RANDOM_INTS: Vec<u64> = vec![
7-
21061184, 21301862, 21331592, 21457012, 21500016, 21537837, 21581557, 21620030, 21664102,
8-
21678463, 21708437, 21751808, 21845243, 21850265, 21938879, 21971014, 22005842, 22034601,
9-
22085552, 22101746, 22115429, 22139883, 22260209, 22270768, 22298080, 22299780, 22307659,
10-
22354697, 22355668, 22359397, 22463872, 22496590, 22590978, 22603740, 22706352, 22820895,
11-
22849491, 22891538, 22912955, 22919915, 22928920, 22968656, 22985992, 23033739, 23061395,
12-
23077554, 23138588, 23185172, 23282479, 23290830, 23316844, 23386911, 23641319, 23677058,
13-
23742930, 25350389, 25399746, 25404925, 25464391, 25478415, 25480015, 25632783, 25639769,
14-
25645612, 25688228, 25724427, 25862192, 25954476, 25994479, 26008752, 26036460, 26038202,
15-
26078874, 26118327, 26132679, 26207601, 26262418, 26270737, 26274860, 26431248, 26434268,
16-
26562736, 26580134, 26593740, 26618561, 26844181, 26866971, 26907883, 27005270, 27023584,
17-
27024044, 27057184, 23061395, 23077554, 23138588, 23185172, 23282479, 23290830, 23316844,
18-
23386911, 23641319, 23677058, 23742930, 25350389, 25399746, 25404925, 25464391, 25478415,
19-
25480015, 25632783, 25639769, 25645612, 25688228, 25724427, 25862192, 25954476, 25994479,
20-
26008752, 26036460, 26038202, 26078874, 26118327, 26132679, 26207601, 26262418, 26270737,
21-
26274860, 26431248, 26434268, 26562736, 26580134, 26593740, 26618561, 26844181, 26866971,
22-
26907883, 27005270, 27023584, 27024044, 27057184, 23061395, 23077554, 23138588, 23185172,
23-
23282479, 23290830, 23316844, 23386911, 23641319, 23677058, 23742930, 25350389, 25399746,
24-
25404925, 25464391, 25478415, 25480015, 25632783, 25639769, 25645612, 25688228, 25724427,
25-
25862192, 25954476, 25994479, 26008752, 26036460, 26038202, 26078874, 26118327, 26132679,
26-
26207601, 26262418, 26270737, 26274860, 26431248, 26434268, 26562736, 26580134, 26593740,
27-
26618561, 26844181, 26866971, 26907883, 27005270, 27023584, 27024044, 27057184, 23061395,
28-
23077554, 23138588, 23185172, 23282479, 23290830, 23316844, 23386911, 23641319, 23677058,
29-
23742930, 25350389, 25399746, 25404925, 25464391, 25478415, 25480015, 25632783, 25639769,
30-
25645612, 25688228, 25724427, 25862192, 25954476, 25994479, 26008752, 26036460, 26038202,
31-
26078874, 26118327, 26132679, 26207601, 26262418, 26270737, 26274860, 26431248, 26434268,
32-
26562736, 26580134, 26593740, 26618561, 26844181, 26866971, 26907883, 27005270, 27023584,
33-
27024044, 27057184, 27088034, 27088550, 27302898, 27353925, 27412984, 27488633, 27514155,
34-
27558052, 27601937, 27606339, 27624514, 27680396, 27684064, 27963602, 27414982, 28450673
35-
];
36-
}
4+
static RANDOM_INTS: &[u64] = &[
5+
21061184, 21301862, 21331592, 21457012, 21500016, 21537837, 21581557, 21620030, 21664102,
6+
21678463, 21708437, 21751808, 21845243, 21850265, 21938879, 21971014, 22005842, 22034601,
7+
22085552, 22101746, 22115429, 22139883, 22260209, 22270768, 22298080, 22299780, 22307659,
8+
22354697, 22355668, 22359397, 22463872, 22496590, 22590978, 22603740, 22706352, 22820895,
9+
22849491, 22891538, 22912955, 22919915, 22928920, 22968656, 22985992, 23033739, 23061395,
10+
23077554, 23138588, 23185172, 23282479, 23290830, 23316844, 23386911, 23641319, 23677058,
11+
23742930, 25350389, 25399746, 25404925, 25464391, 25478415, 25480015, 25632783, 25639769,
12+
25645612, 25688228, 25724427, 25862192, 25954476, 25994479, 26008752, 26036460, 26038202,
13+
26078874, 26118327, 26132679, 26207601, 26262418, 26270737, 26274860, 26431248, 26434268,
14+
26562736, 26580134, 26593740, 26618561, 26844181, 26866971, 26907883, 27005270, 27023584,
15+
27024044, 27057184, 23061395, 23077554, 23138588, 23185172, 23282479, 23290830, 23316844,
16+
23386911, 23641319, 23677058, 23742930, 25350389, 25399746, 25404925, 25464391, 25478415,
17+
25480015, 25632783, 25639769, 25645612, 25688228, 25724427, 25862192, 25954476, 25994479,
18+
26008752, 26036460, 26038202, 26078874, 26118327, 26132679, 26207601, 26262418, 26270737,
19+
26274860, 26431248, 26434268, 26562736, 26580134, 26593740, 26618561, 26844181, 26866971,
20+
26907883, 27005270, 27023584, 27024044, 27057184, 23061395, 23077554, 23138588, 23185172,
21+
23282479, 23290830, 23316844, 23386911, 23641319, 23677058, 23742930, 25350389, 25399746,
22+
25404925, 25464391, 25478415, 25480015, 25632783, 25639769, 25645612, 25688228, 25724427,
23+
25862192, 25954476, 25994479, 26008752, 26036460, 26038202, 26078874, 26118327, 26132679,
24+
26207601, 26262418, 26270737, 26274860, 26431248, 26434268, 26562736, 26580134, 26593740,
25+
26618561, 26844181, 26866971, 26907883, 27005270, 27023584, 27024044, 27057184, 23061395,
26+
23077554, 23138588, 23185172, 23282479, 23290830, 23316844, 23386911, 23641319, 23677058,
27+
23742930, 25350389, 25399746, 25404925, 25464391, 25478415, 25480015, 25632783, 25639769,
28+
25645612, 25688228, 25724427, 25862192, 25954476, 25994479, 26008752, 26036460, 26038202,
29+
26078874, 26118327, 26132679, 26207601, 26262418, 26270737, 26274860, 26431248, 26434268,
30+
26562736, 26580134, 26593740, 26618561, 26844181, 26866971, 26907883, 27005270, 27023584,
31+
27024044, 27057184, 27088034, 27088550, 27302898, 27353925, 27412984, 27488633, 27514155,
32+
27558052, 27601937, 27606339, 27624514, 27680396, 27684064, 27963602, 27414982, 28450673,
33+
];
3734

3835
fn bucket_benchmark(c: &mut Criterion) {
3936
let mut group = c.benchmark_group("bucket");

metrics-util/benches/router.rs

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,39 @@
11
use criterion::{criterion_group, criterion_main, Criterion};
22

3-
#[cfg(feature = "layer-router")]
43
use metrics::{Key, NoopRecorder, Recorder};
5-
6-
#[cfg(feature = "layer-router")]
74
use metrics_util::layers::RouterBuilder;
85
use metrics_util::MetricKindMask;
96

10-
#[allow(unused_variables)]
117
fn layer_benchmark(c: &mut Criterion) {
12-
#[cfg(feature = "layer-router")]
13-
{
14-
let mut group = c.benchmark_group("router");
15-
group.bench_function("default target (via mask)", |b| {
16-
let recorder = RouterBuilder::from_recorder(NoopRecorder).build();
17-
let key = Key::from_name("test_key");
8+
let mut group = c.benchmark_group("router");
9+
group.bench_function("default target (via mask)", |b| {
10+
let recorder = RouterBuilder::from_recorder(NoopRecorder).build();
11+
let key = Key::from_name("test_key");
1812

19-
b.iter(|| {
20-
let _ = recorder.register_counter(&key);
21-
})
22-
});
23-
group.bench_function("default target (via fallback)", |b| {
24-
let mut builder = RouterBuilder::from_recorder(NoopRecorder);
25-
builder.add_route(MetricKindMask::COUNTER, "override", NoopRecorder);
26-
let recorder = builder.build();
27-
let key = Key::from_name("normal_key");
13+
b.iter(|| {
14+
let _ = recorder.register_counter(&key);
15+
})
16+
});
17+
group.bench_function("default target (via fallback)", |b| {
18+
let mut builder = RouterBuilder::from_recorder(NoopRecorder);
19+
builder.add_route(MetricKindMask::COUNTER, "override", NoopRecorder);
20+
let recorder = builder.build();
21+
let key = Key::from_name("normal_key");
2822

29-
b.iter(|| {
30-
let _ = recorder.register_counter(&key);
31-
})
32-
});
33-
group.bench_function("routed target", |b| {
34-
let mut builder = RouterBuilder::from_recorder(NoopRecorder);
35-
builder.add_route(MetricKindMask::COUNTER, "override", NoopRecorder);
36-
let recorder = builder.build();
37-
let key = Key::from_name("override_key");
23+
b.iter(|| {
24+
let _ = recorder.register_counter(&key);
25+
})
26+
});
27+
group.bench_function("routed target", |b| {
28+
let mut builder = RouterBuilder::from_recorder(NoopRecorder);
29+
builder.add_route(MetricKindMask::COUNTER, "override", NoopRecorder);
30+
let recorder = builder.build();
31+
let key = Key::from_name("override_key");
3832

39-
b.iter(|| {
40-
let _ = recorder.register_counter(&key);
41-
})
42-
});
43-
}
33+
b.iter(|| {
34+
let _ = recorder.register_counter(&key);
35+
})
36+
});
4437
}
4538

4639
criterion_group!(benches, layer_benchmark);

metrics-util/examples/bucket-crusher.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ fn main() {
6969

7070
let mut producer_handles = Vec::new();
7171
for _ in 0..producers {
72-
let done = producer_done.clone();
73-
let counter = producer_counter.clone();
74-
let total = producer_total.clone();
75-
let bucket = bucket.clone();
72+
let done = Arc::clone(&producer_done);
73+
let counter = Arc::clone(&producer_counter);
74+
let total = Arc::clone(&producer_total);
75+
let bucket = Arc::clone(&bucket);
7676

7777
let handle = thread::spawn(move || run_producer(done, counter, total, bucket));
7878
producer_handles.push(handle)

0 commit comments

Comments
 (0)