Skip to content

Commit

Permalink
output: Output metrics as snapshots from metriken-exposition (iopsyst…
Browse files Browse the repository at this point in the history
…ems#165)

Remove the explicit dataspec output and use the generic snapshot
mechanism from metriken-exposition as the output format for rpc-perf
metrics. This changes the metrics from being window delta snapshots to
being free-running metrics. Allow the metrics to be written out either
in JSON or as MessagePack binary file.
  • Loading branch information
mihirn committed Feb 21, 2024
1 parent d531e51 commit efc5891
Show file tree
Hide file tree
Showing 20 changed files with 109 additions and 368 deletions.
153 changes: 43 additions & 110 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 7 additions & 24 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,24 +1,13 @@
[workspace.package]
[package]
name = "rpc-perf"
description = "RPC Performance Testing"
version = "5.4.1-alpha.0"
authors = ["Brian Martin <brian@iop.systems>"]
edition = "2021"
homepage = "https://github.com/iopsystems/rpc-perf"
repository = "https://github.com/iopsystems/rpc-perf"
license = "MIT OR Apache-2.0"

[package]
name = "rpc-perf"
description = "RPC Performance Testing"
version = "5.4.1-alpha.0"
authors = { workspace = true }
edition = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
license = { workspace = true }

[workspace.dependencies]
histogram = { version = "0.9.0", features = ["serde"] }
serde = { version = "1.0.185", features = ["derive"] }

[dependencies]
ahash = "0.8.3"
async-channel = "1.9.0"
Expand All @@ -30,11 +19,11 @@ chrono = "0.4.31"
clap = "4.4.6"
foreign-types-shared = "0.3.1"
futures = "0.3.28"
histogram = { workspace = true }
http-body-util = "0.1.0-rc.3"
humantime = "2.1.0"
hyper = { version = "1.0.0-rc.4", features = ["http1", "http2", "client"]}
metriken = "0.5.1"
metriken-exposition = { version = "0.1.0", features = ["serde"] }
mio = "0.8.8"
momento = "0.32.1"
pelikan-net = "0.1.0"
Expand All @@ -49,8 +38,8 @@ ratelimit = "0.9.0"
redis = { version = "0.23.3", features = ["tokio-comp"] }
rdkafka = { version = "0.34.0", features = ["cmake-build"] }
ringlog = "0.5.0"
rpcperf-dataspec = { path = "lib/dataspec" }
serde = { workspace = true }
rmp-serde = "1.1.2"
serde = { version = "1.0.185", features = ["derive"] }
serde_json = "1.0.107"
session = { git = "https://github.com/pelikan-io/pelikan" }
sha2 = "0.10.8"
Expand All @@ -61,12 +50,6 @@ toml = "0.8.2"
warp = "0.3.6"
zipf = "7.0.1"

[workspace]
members = [
".",
"lib/dataspec",
]

[profile.release]
opt-level = 3
debug = true
Expand Down
2 changes: 1 addition & 1 deletion configs/blabber.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interval = 1
# the number of intervals to run the test for
duration = 300
# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
Expand Down
2 changes: 1 addition & 1 deletion configs/http1.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ interval = 1
duration = 300

# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"

# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
Expand Down
2 changes: 1 addition & 1 deletion configs/http2.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ interval = 1
duration = 300

# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"

# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
Expand Down
2 changes: 1 addition & 1 deletion configs/kafka.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ interval = 1
# the number of intervals to run the test for
duration = 300
# optionally, we can write some detailed stats to a file during the run
json_output = "stats.json"
metrics_output = "stats.json"
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
Expand Down
2 changes: 1 addition & 1 deletion configs/memcached.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interval = 60
# the number of intervals to run the test for
duration = 300
# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
Expand Down
2 changes: 1 addition & 1 deletion configs/momento.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ interval = 60
# the number of intervals to run the test for
duration = 300
# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
Expand Down
2 changes: 1 addition & 1 deletion configs/momento_pubsub.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interval = 60
# the number of intervals to run the test for
duration = 300
# optionally, we can write some detailed stats to a file during the run
#json_output = "stats.json"
#metrics_output = "stats.json"
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
Expand Down
Loading

0 comments on commit efc5891

Please sign in to comment.