From 1dae2d6c2f67d0e23e1ae9399e02d140791b0ce9 Mon Sep 17 00:00:00 2001 From: "Brian L. Troutwine" Date: Mon, 17 Jul 2023 18:15:48 -0700 Subject: [PATCH] Split project into sub-crates, add capture protobuf (#629) * Split project into sub-crates, add capture protobuf This commit splits the project into two sub-crates, one 'lading' which is familiar and one 'lading-capture' which has the traditional JSON form of a `Line` now exported and a new protobuf based capture payload intended for network transmission. REF SMP-631 Signed-off-by: Brian L. Troutwine * install protoc in regression flow Signed-off-by: Brian L. Troutwine * fix buf lint ding Signed-off-by: Brian L. Troutwine * install protoc in build container Signed-off-by: Brian L. Troutwine * 1.71 -> 1.70 Signed-off-by: Brian L. Troutwine * add conversion for MetricKind Signed-off-by: Brian L. Troutwine * deny ding Signed-off-by: Brian L. Troutwine * 0.17.2-rc1 Signed-off-by: Brian L. Troutwine * Install protobuf for release Signed-off-by: Brian L. Troutwine * protobuf on musl Signed-off-by: Brian L. Troutwine * remove musl release build Signed-off-by: Brian L. Troutwine --------- Signed-off-by: Brian L. Troutwine --- .github/workflows/ci.yml | 18 + .github/workflows/release.yml | 19 +- CHANGELOG.md | 5 + Cargo.lock | 662 +++++++++--------- Cargo.toml | 100 +-- buf.yaml | 10 + deny.toml | 2 - lading/Cargo.toml | 95 +++ lading/README.md | 3 + {src => lading/src}/bin/lading.rs | 0 {src => lading/src}/blackhole.rs | 0 {src => lading/src}/blackhole/http.rs | 0 {src => lading/src}/blackhole/splunk_hec.rs | 0 {src => lading/src}/blackhole/sqs.rs | 0 {src => lading/src}/blackhole/tcp.rs | 0 {src => lading/src}/blackhole/udp.rs | 0 .../src}/blackhole/unix_datagram.rs | 0 {src => lading/src}/blackhole/unix_stream.rs | 0 {src => lading/src}/block.rs | 0 {src => lading/src}/captures.rs | 59 +- {src => lading/src}/codec.rs | 0 {src => lading/src}/common.rs | 0 {src => lading/src}/config.rs | 0 {src => lading/src}/generator.rs | 0 {src => lading/src}/generator/file_gen.rs | 0 {src => lading/src}/generator/file_tree.rs | 0 {src => lading/src}/generator/grpc.rs | 0 {src => lading/src}/generator/http.rs | 0 {src => lading/src}/generator/process_tree.rs | 0 {src => lading/src}/generator/splunk_hec.rs | 0 .../generator/splunk_hec/acknowledgements.rs | 0 {src => lading/src}/generator/tcp.rs | 0 {src => lading/src}/generator/udp.rs | 0 .../src}/generator/unix_datagram.rs | 0 {src => lading/src}/generator/unix_stream.rs | 0 {src => lading/src}/inspector.rs | 0 {src => lading/src}/lib.rs | 0 {src => lading/src}/observer.rs | 0 {src => lading/src}/payload.rs | 0 {src => lading/src}/payload/apache_common.rs | 0 {src => lading/src}/payload/ascii.rs | 0 {src => lading/src}/payload/common.rs | 0 {src => lading/src}/payload/datadog_logs.rs | 0 {src => lading/src}/payload/dogstatsd.rs | 0 .../src}/payload/dogstatsd/common.rs | 0 .../src}/payload/dogstatsd/common/tags.rs | 0 .../src}/payload/dogstatsd/event.rs | 0 .../src}/payload/dogstatsd/metric.rs | 0 .../src}/payload/dogstatsd/service_check.rs | 0 {src => lading/src}/payload/fluent.rs | 0 {src => lading/src}/payload/json.rs | 0 .../src}/payload/opentelemetry_log.rs | 0 .../src}/payload/opentelemetry_metric.rs | 0 .../src}/payload/opentelemetry_trace.rs | 0 {src => lading/src}/payload/splunk_hec.rs | 0 {src => lading/src}/payload/statik.rs | 0 {src => lading/src}/payload/syslog.rs | 0 {src => lading/src}/payload/trace_agent.rs | 0 {src => lading/src}/signals.rs | 0 {src => lading/src}/target.rs | 0 {src => lading/src}/target_metrics.rs | 0 {src => lading/src}/target_metrics/expvar.rs | 0 .../src}/target_metrics/prometheus.rs | 0 {src => lading/src}/throttle.rs | 0 {src => lading/src}/throttle/predictive.rs | 0 {src => lading/src}/throttle/stable.rs | 0 lading_capture/Cargo.toml | 19 + lading_capture/README.md | 3 + lading_capture/build.rs | 13 + lading_capture/proto/capture/v1/capture.proto | 38 + lading_capture/src/json.rs | 63 ++ lading_capture/src/lib.rs | 4 + lading_capture/src/proto.rs | 9 + .../proto/lading_capture.proto.capture.v1.rs | 73 ++ regression/Dockerfile | 1 + 75 files changed, 718 insertions(+), 478 deletions(-) create mode 100644 buf.yaml create mode 100644 lading/Cargo.toml create mode 100644 lading/README.md rename {src => lading/src}/bin/lading.rs (100%) rename {src => lading/src}/blackhole.rs (100%) rename {src => lading/src}/blackhole/http.rs (100%) rename {src => lading/src}/blackhole/splunk_hec.rs (100%) rename {src => lading/src}/blackhole/sqs.rs (100%) rename {src => lading/src}/blackhole/tcp.rs (100%) rename {src => lading/src}/blackhole/udp.rs (100%) rename {src => lading/src}/blackhole/unix_datagram.rs (100%) rename {src => lading/src}/blackhole/unix_stream.rs (100%) rename {src => lading/src}/block.rs (100%) rename {src => lading/src}/captures.rs (79%) rename {src => lading/src}/codec.rs (100%) rename {src => lading/src}/common.rs (100%) rename {src => lading/src}/config.rs (100%) rename {src => lading/src}/generator.rs (100%) rename {src => lading/src}/generator/file_gen.rs (100%) rename {src => lading/src}/generator/file_tree.rs (100%) rename {src => lading/src}/generator/grpc.rs (100%) rename {src => lading/src}/generator/http.rs (100%) rename {src => lading/src}/generator/process_tree.rs (100%) rename {src => lading/src}/generator/splunk_hec.rs (100%) rename {src => lading/src}/generator/splunk_hec/acknowledgements.rs (100%) rename {src => lading/src}/generator/tcp.rs (100%) rename {src => lading/src}/generator/udp.rs (100%) rename {src => lading/src}/generator/unix_datagram.rs (100%) rename {src => lading/src}/generator/unix_stream.rs (100%) rename {src => lading/src}/inspector.rs (100%) rename {src => lading/src}/lib.rs (100%) rename {src => lading/src}/observer.rs (100%) rename {src => lading/src}/payload.rs (100%) rename {src => lading/src}/payload/apache_common.rs (100%) rename {src => lading/src}/payload/ascii.rs (100%) rename {src => lading/src}/payload/common.rs (100%) rename {src => lading/src}/payload/datadog_logs.rs (100%) rename {src => lading/src}/payload/dogstatsd.rs (100%) rename {src => lading/src}/payload/dogstatsd/common.rs (100%) rename {src => lading/src}/payload/dogstatsd/common/tags.rs (100%) rename {src => lading/src}/payload/dogstatsd/event.rs (100%) rename {src => lading/src}/payload/dogstatsd/metric.rs (100%) rename {src => lading/src}/payload/dogstatsd/service_check.rs (100%) rename {src => lading/src}/payload/fluent.rs (100%) rename {src => lading/src}/payload/json.rs (100%) rename {src => lading/src}/payload/opentelemetry_log.rs (100%) rename {src => lading/src}/payload/opentelemetry_metric.rs (100%) rename {src => lading/src}/payload/opentelemetry_trace.rs (100%) rename {src => lading/src}/payload/splunk_hec.rs (100%) rename {src => lading/src}/payload/statik.rs (100%) rename {src => lading/src}/payload/syslog.rs (100%) rename {src => lading/src}/payload/trace_agent.rs (100%) rename {src => lading/src}/signals.rs (100%) rename {src => lading/src}/target.rs (100%) rename {src => lading/src}/target_metrics.rs (100%) rename {src => lading/src}/target_metrics/expvar.rs (100%) rename {src => lading/src}/target_metrics/prometheus.rs (100%) rename {src => lading/src}/throttle.rs (100%) rename {src => lading/src}/throttle/predictive.rs (100%) rename {src => lading/src}/throttle/stable.rs (100%) create mode 100644 lading_capture/Cargo.toml create mode 100644 lading_capture/README.md create mode 100644 lading_capture/build.rs create mode 100644 lading_capture/proto/capture/v1/capture.proto create mode 100644 lading_capture/src/json.rs create mode 100644 lading_capture/src/lib.rs create mode 100644 lading_capture/src/proto.rs create mode 100644 lading_capture/src/proto/lading_capture.proto.capture.v1.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b48265ec..b13a538d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,3 +89,21 @@ jobs: run: sudo apt-get update && sudo apt-get install -y protobuf-compiler - run: cargo test -p sheepdog timeout-minutes: 30 + + buf: + runs-on: ubuntu-latest + steps: + # Check our protobufs for lint cleanliness and for lack of breaking + # changes + - uses: actions/checkout@v3 + - name: buf-setup + uses: bufbuild/buf-setup-action@v1.15.0 + - name: buf-lint + uses: bufbuild/buf-lint-action@v1.0.3 + # NOTE we will need to actually have protos in main before this has the + # potential of working. + # + # - name: buf-breaking + # uses: bufbuild/buf-breaking-action@v1.1.2 + # with: + # against: 'https://github.com/datadog/lading.git#branch=main' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 68b696006..9dcea92df 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,12 +42,6 @@ jobs: - target: x86_64-unknown-linux-gnu os: ubuntu-20.04 - # Musl x86-64 Linux build. - - target: x86_64-unknown-linux-musl - os: ubuntu-latest - cc: 'musl-gcc' - cxx: 'explicitly-unset' - # Normal Intel Mac build - target: x86_64-apple-darwin os: macos-latest @@ -59,6 +53,14 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Install protobuf (Apt) + run: sudo apt-get update && sudo apt-get install -y protobuf-compiler + if: matrix.os == 'ubuntu-20.04' + + - name: Install protobuf (Brew) + run: brew install protobuf + if: matrix.os == 'macos-latest' + # Install cross compilation rust toolchain for Arm64 Mac - uses: actions-rust-lang/setup-rust-toolchain@v1.3.7 with: @@ -72,11 +74,6 @@ jobs: target: ${{ matrix.target }} if: matrix.target == 'aarch64-unknown-linux-gnu' - # Install musl tools for musl builds - - name: Install musl tools - run: sudo apt-get update && sudo apt-get install -y musl-tools - if: matrix.target == 'x86_64-unknown-linux-musl' - # Run the build & upload artifacts - name: Build and upload lading binaries uses: taiki-e/upload-rust-binary-action@v1 diff --git a/CHANGELOG.md b/CHANGELOG.md index de29c7f3b..6388c4706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## [0.17.2-rc1] +### Changed +- We now expose two crates from this project, one for capture payloads and the + other the main lading project. + ## [0.17.1] ### Fixed - Removed a leftover debug print in the Json payload implementation. diff --git a/Cargo.lock b/Cargo.lock index a68ec3b05..15c8e3f1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,38 +39,37 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.23", "slab", "socket2", "waker-fn", - "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", - "futures-lite", ] [[package]] @@ -85,23 +84,24 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", + "pin-project-lite", ] [[package]] name = "async-stream-impl" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -110,9 +110,9 @@ version = "0.1.71" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -134,9 +134,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.12" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491" +checksum = "a6a1de45611fdb535bfde7b7de4fd54f4fd2b17b1737c0a59b69bf9b92074b8c" dependencies = [ "async-trait", "axum-core", @@ -162,9 +162,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", "bytes", @@ -200,9 +200,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "bit-set" @@ -227,9 +227,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-unit" @@ -255,9 +255,9 @@ checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "cc" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" [[package]] name = "cfg-if" @@ -275,7 +275,7 @@ dependencies = [ "bitflags", "clap_derive", "clap_lex", - "indexmap 1.9.2", + "indexmap 1.9.3", "once_cell", "strsim", "termcolor", @@ -290,9 +290,9 @@ checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 1.0.109", ] [[package]] @@ -306,9 +306,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ "crossbeam-utils", ] @@ -324,9 +324,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -334,34 +334,34 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", + "memoffset 0.9.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] [[package]] name = "dashmap" -version = "5.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" dependencies = [ "cfg-if", - "hashbrown 0.12.3", + "hashbrown 0.14.0", "lock_api", "once_cell", "parking_lot_core", @@ -389,9 +389,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "encoding_rs" @@ -416,20 +416,9 @@ checksum = "e885f8dca86fbf1999f9b4643d6e94e984c5c8b36073404dd227be3e5255f1d5" [[package]] name = "equivalent" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" - -[[package]] -name = "errno" -version = "0.2.8" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" @@ -472,9 +461,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -503,9 +492,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -560,9 +549,9 @@ checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ "fastrand", "futures-core", @@ -579,9 +568,9 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -616,9 +605,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", @@ -633,9 +622,9 @@ checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "h2" -version = "0.3.18" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ "bytes", "fnv", @@ -643,7 +632,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.2", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -673,9 +662,9 @@ checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -688,9 +677,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -780,9 +769,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -790,9 +779,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -823,16 +812,16 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.2", "libc", "windows-sys 0.48.0", ] [[package]] name = "ipnet" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is_executable" @@ -854,15 +843,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -882,6 +871,7 @@ dependencies = [ "http-serde", "hyper", "is_executable", + "lading-capture", "metrics", "metrics-exporter-prometheus", "metrics-util", @@ -912,6 +902,17 @@ dependencies = [ "uuid", ] +[[package]] +name = "lading-capture" +version = "0.1.0" +dependencies = [ + "prost", + "prost-build", + "serde", + "serde_json", + "uuid", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -920,15 +921,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.146" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "linux-raw-sys" @@ -944,9 +945,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -954,12 +955,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "mach2" @@ -976,7 +974,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -1000,6 +998,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "metrics" version = "0.21.1" @@ -1017,9 +1024,9 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "hyper", - "indexmap 1.9.2", + "indexmap 1.9.3", "ipnet", "metrics", "metrics-util", @@ -1034,9 +1041,9 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -1049,7 +1056,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.13.1", - "indexmap 1.9.2", + "indexmap 1.9.3", "metrics", "num_cpus", "ordered-float", @@ -1060,9 +1067,9 @@ dependencies = [ [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" @@ -1108,7 +1115,7 @@ dependencies = [ "bitflags", "cfg-if", "libc", - "memoffset", + "memoffset 0.7.1", "pin-utils", "static_assertions", ] @@ -1139,7 +1146,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.2", "libc", ] @@ -1187,7 +1194,7 @@ dependencies = [ "fnv", "futures-channel", "futures-util", - "indexmap 1.9.2", + "indexmap 1.9.3", "js-sys", "once_cell", "pin-project-lite", @@ -1215,18 +1222,18 @@ dependencies = [ [[package]] name = "ordered-float" -version = "3.6.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13a384337e997e6860ffbaa83708b2ef329fd8c54cb67a5f64d421e0f943254f" +checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213" dependencies = [ "num-traits", ] [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "overload" @@ -1236,70 +1243,70 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" [[package]] name = "parking_lot_core" -version = "0.9.6" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-targets 0.48.1", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "petgraph" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap 1.9.2", + "indexmap 1.9.3", ] [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" [[package]] name = "pin-utils" @@ -1309,23 +1316,25 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "polling" -version = "2.5.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", + "bitflags", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite", + "windows-sys 0.48.0", ] [[package]] name = "portable-atomic" -version = "1.2.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f602a0d1e09a48e4f8e8b4d4042e32807c3676da31f2ecabeac9f96226ec6c45" +checksum = "edc55135a600d700580e406b4de0d59cb9ad25e344a3a091a97ded2622ec4ec6" [[package]] name = "ppv-lite86" @@ -1335,12 +1344,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.23" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "proc-macro2 1.0.63", - "syn 1.0.107", + "proc-macro2 1.0.66", + "syn 1.0.109", ] [[package]] @@ -1350,9 +1359,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 1.0.109", "version_check", ] @@ -1362,8 +1371,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", + "proc-macro2 1.0.66", + "quote 1.0.31", "version_check", ] @@ -1378,9 +1387,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.63" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] @@ -1395,7 +1404,7 @@ dependencies = [ "byteorder", "hex", "lazy_static", - "rustix 0.36.7", + "rustix 0.36.15", ] [[package]] @@ -1412,7 +1421,7 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.6.29", "rusty-fork", "tempfile", "unarray", @@ -1441,9 +1450,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.6" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -1456,7 +1465,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 1.0.107", + "syn 1.0.109", "tempfile", "which", ] @@ -1469,26 +1478,25 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 1.0.109", ] [[package]] name = "prost-types" -version = "0.11.6" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] [[package]] name = "quanta" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc73c42f9314c4bdce450c77e6f09ecbddefbeddb1b5979ded332a3913ded33" +checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ "crossbeam-utils", "libc", @@ -1517,11 +1525,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.29" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" dependencies = [ - "proc-macro2 1.0.63", + "proc-macro2 1.0.66", ] [[package]] @@ -1575,18 +1583,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "10.6.0" +version = "10.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6823ea29436221176fe662da99998ad3b4db2c7f31e7b6f5fe43adccd6320bb" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" dependencies = [ "bitflags", ] @@ -1602,11 +1601,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" dependencies = [ - "regex-syntax", + "aho-corasick", + "memchr", + "regex-automata 0.3.3", + "regex-syntax 0.7.4", ] [[package]] @@ -1615,14 +1617,31 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.4", ] [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "reqwest" @@ -1630,7 +1649,7 @@ version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "bytes", "encoding_rs", "futures-core", @@ -1688,26 +1707,26 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.36.7" +version = "0.36.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" +checksum = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941" dependencies = [ "bitflags", - "errno 0.2.8", + "errno", "io-lifetimes", "libc", "linux-raw-sys 0.1.4", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ "bitflags", - "errno 0.3.1", + "errno", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", @@ -1716,9 +1735,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "rusty-fork" @@ -1734,34 +1753,34 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.168" +version = "1.0.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af" +checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.168" +version = "1.0.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fe589678c688e44177da4f27152ee2d190757271dc7f1d5b6b9f68d869d641" +checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -1802,9 +1821,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 1.0.109", ] [[package]] @@ -1870,9 +1889,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -1885,18 +1904,18 @@ checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1" [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "socket2" @@ -1933,31 +1952,31 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", + "proc-macro2 1.0.66", + "quote 1.0.31", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.23" +version = "2.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737" +checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", + "proc-macro2 1.0.66", + "quote 1.0.31", "unicode-ident", ] [[package]] name = "sync_wrapper" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "tempfile" @@ -1968,8 +1987,8 @@ dependencies = [ "autocfg", "cfg-if", "fastrand", - "redox_syscall 0.3.5", - "rustix 0.37.19", + "redox_syscall", + "rustix 0.37.23", "windows-sys 0.48.0", ] @@ -2003,17 +2022,18 @@ version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -2094,9 +2114,9 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] @@ -2164,7 +2184,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ "async-trait", "axum", - "base64 0.21.0", + "base64 0.21.2", "bytes", "futures-core", "futures-util", @@ -2186,15 +2206,15 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f02f6f31111ddeb63768ab9f224a73104b790a7dcdc8e8ab2cb0889b72d4cab" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ "prettyplease", - "proc-macro2 1.0.63", + "proc-macro2 1.0.66", "prost-build", - "quote 1.0.29", - "syn 1.0.107", + "quote 1.0.31", + "syn 1.0.109", ] [[package]] @@ -2205,7 +2225,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap 1.9.2", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand", @@ -2231,10 +2251,11 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.38" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9cf6a813d3f40c88b0b6b6f29a5c95c6cdbf97c1f9cc53fb820200f5ad814d" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ + "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2242,20 +2263,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 2.0.23", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -2320,9 +2341,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -2341,15 +2362,15 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unsafe-libyaml" -version = "0.2.7" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", "idna", @@ -2401,11 +2422,10 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -2417,9 +2437,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2427,24 +2447,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if", "js-sys", @@ -2454,57 +2474,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "quote 1.0.29", + "quote 1.0.31", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "proc-macro2 1.0.63", - "quote 1.0.29", - "syn 1.0.107", + "proc-macro2 1.0.66", + "quote 1.0.31", + "syn 2.0.26", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "which" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", @@ -2544,17 +2555,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", + "windows-targets 0.42.2", ] [[package]] @@ -2563,14 +2568,29 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm 0.48.0", "windows_aarch64_msvc 0.48.0", @@ -2583,9 +2603,9 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" @@ -2595,9 +2615,9 @@ checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" @@ -2607,9 +2627,9 @@ checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" @@ -2619,9 +2639,9 @@ checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" @@ -2631,9 +2651,9 @@ checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" @@ -2643,9 +2663,9 @@ checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" @@ -2655,9 +2675,9 @@ checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" diff --git a/Cargo.toml b/Cargo.toml index 69e616926..c2ab55f9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,99 +1,15 @@ [workspace] -members = ["./", "integration/sheepdog", "integration/ducks"] +members = [ + "integration/sheepdog", + "integration/ducks", + "lading", + "lading_capture" +] -[package] -name = "lading" -version = "0.17.1" -authors = ["Brian L. Troutwine "] -edition = "2021" -license = "MIT" -repository = "https://github.com/blt/lading/" -keywords = ["random_test", "generator"] -categories = ["development-tools::profiling"] -description = "A tool for load testing daemons." - -[dependencies] -async-trait = { version = "0.1", default-features = false, features = [] } -byte-unit = { version = "4.0", features = ["serde"] } -bytes = { version = "1.4.0", default-features = false, features = ["std"] } -clap = { version = "3.2", default-features = false, features = [ - "std", - "color", - "suggestions", - "derive", -] } -flate2 = { version = "1.0.26", default-features = false, features = [ - "rust_backend", -] } -futures = "0.3.28" -http = "0.2" -http-serde = "1.1" -hyper = { version = "0.14", features = ["client"] } -is_executable = "1.0.1" -metrics = { version = "0.21", default-features = false } -metrics-exporter-prometheus = { version = "0.12.1", default-features = false, features = [ - "http-listener", -] } -metrics-util = { version = "0.15" } -nix = { version = "0.26" } -num_cpus = { version = "1.16" } -once_cell = "1.18" -opentelemetry-proto = { git = "https://github.com/open-telemetry/opentelemetry-rust/", rev = "6078e32", features = [ - "traces", - "metrics", - "logs", - "gen-tonic", -] } -prost = "0.11" -rand = { version = "0.8", default-features = false, features = [ - "small_rng", - "std", - "std_rng", -] } -reqwest = { version = "0.11", default-features = false, features = ["json"] } -rmp-serde = { version = "1.1", default-features = false } +[workspace.dependencies] +uuid = { version = "1.2", default-features = false, features = ["v4", "serde"] } serde = { version = "1.0", features = ["std", "derive"] } serde_json = { version = "1.0", features = ["std"] } -serde_qs = "0.12" -serde_tuple = { version = "0.5", default-features = false } -serde_yaml = "0.9" -thiserror = { version = "1.0" } -time = { version = "0.3", features = ["formatting"] } -tokio = { version = "1.29", features = [ - "rt", - "rt-multi-thread", - "macros", - "fs", - "io-util", - "process", - "signal", - "time", - "net", -] } -tokio-util = { version = "0.7", features = ["io"] } -tonic = { version = "0.9" } -tower = { version = "0.4", default-features = false, features = [ - "timeout", - "limit", - "load-shed", -] } -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["std", "env-filter"] } -uuid = { version = "1.4", features = ["serde", "v4"] } - -[target.'cfg(target_os = "linux")'.dependencies] -procfs = { version = "0.15", default-features = false, features = [] } -async-pidfd = "0.1" - -[dev-dependencies] -proptest = "1.2" -proptest-derive = "0.3.0" - -[features] -default = [] - -[[bin]] -name = "lading" [profile.release] lto = true # Optimize our binary at link stage. diff --git a/buf.yaml b/buf.yaml new file mode 100644 index 000000000..06c5cca00 --- /dev/null +++ b/buf.yaml @@ -0,0 +1,10 @@ +version: v1 +breaking: + use: + - WIRE +lint: + use: + - DEFAULT + - COMMENTS + ignore: + - integration diff --git a/deny.toml b/deny.toml index 8dcc4ffc0..7ff95ef33 100644 --- a/deny.toml +++ b/deny.toml @@ -29,8 +29,6 @@ unsound = "deny" ignore = [ # atty is unsound for some custom allocators on Windows and is unmaintained "RUSTSEC-2021-0145", - # mach is unmaintained - "RUSTSEC-2020-0168", ] [bans] diff --git a/lading/Cargo.toml b/lading/Cargo.toml new file mode 100644 index 000000000..0bd043b56 --- /dev/null +++ b/lading/Cargo.toml @@ -0,0 +1,95 @@ +[package] +name = "lading" +version = "0.17.1" +authors = ["Brian L. Troutwine ", "George Hahn { - #[serde(borrow)] - /// An id that is mostly unique to this run, allowing us to distinguish - /// duplications of the same observational setup. - pub run_id: Cow<'a, Uuid>, - /// The time in milliseconds that this line was written. - pub time: u128, - /// The "fetch index". Previous versions of lading scraped prometheus - /// metrics from their targets and kept an increment index of polls. Now - /// this records the number of times the internal metrics cache has been - /// flushed. - pub fetch_index: u64, - /// The name of the metric recorded by this line. - pub metric_name: String, - /// The kind of metric recorded by this line. - pub metric_kind: MetricKind, - /// The value of the metric on this line. - pub value: LineValue, - #[serde(flatten)] - /// The labels associated with this metric. - pub labels: HashMap, -} - struct Inner { registry: Registry, } @@ -149,13 +104,13 @@ impl CaptureManager { // TODO we're allocating the same small strings over and over most likely labels.insert(lbl.key().into(), lbl.value().into()); } - let line = Line { + let line = json::Line { run_id: Cow::Borrowed(&self.run_id), time: now_ms, fetch_index: self.fetch_index, metric_name: key.name().into(), - metric_kind: MetricKind::Counter, - value: LineValue::Int(counter.load(Ordering::Relaxed)), + metric_kind: json::MetricKind::Counter, + value: json::LineValue::Int(counter.load(Ordering::Relaxed)), labels, }; lines.push(line); @@ -169,13 +124,13 @@ impl CaptureManager { labels.insert(lbl.key().into(), lbl.value().into()); } let value: f64 = f64::from_bits(gauge.load(Ordering::Relaxed)); - let line = Line { + let line = json::Line { run_id: Cow::Borrowed(&self.run_id), time: now_ms, fetch_index: self.fetch_index, metric_name: key.name().into(), - metric_kind: MetricKind::Gauge, - value: LineValue::Float(value), + metric_kind: json::MetricKind::Gauge, + value: json::LineValue::Float(value), labels, }; lines.push(line); diff --git a/src/codec.rs b/lading/src/codec.rs similarity index 100% rename from src/codec.rs rename to lading/src/codec.rs diff --git a/src/common.rs b/lading/src/common.rs similarity index 100% rename from src/common.rs rename to lading/src/common.rs diff --git a/src/config.rs b/lading/src/config.rs similarity index 100% rename from src/config.rs rename to lading/src/config.rs diff --git a/src/generator.rs b/lading/src/generator.rs similarity index 100% rename from src/generator.rs rename to lading/src/generator.rs diff --git a/src/generator/file_gen.rs b/lading/src/generator/file_gen.rs similarity index 100% rename from src/generator/file_gen.rs rename to lading/src/generator/file_gen.rs diff --git a/src/generator/file_tree.rs b/lading/src/generator/file_tree.rs similarity index 100% rename from src/generator/file_tree.rs rename to lading/src/generator/file_tree.rs diff --git a/src/generator/grpc.rs b/lading/src/generator/grpc.rs similarity index 100% rename from src/generator/grpc.rs rename to lading/src/generator/grpc.rs diff --git a/src/generator/http.rs b/lading/src/generator/http.rs similarity index 100% rename from src/generator/http.rs rename to lading/src/generator/http.rs diff --git a/src/generator/process_tree.rs b/lading/src/generator/process_tree.rs similarity index 100% rename from src/generator/process_tree.rs rename to lading/src/generator/process_tree.rs diff --git a/src/generator/splunk_hec.rs b/lading/src/generator/splunk_hec.rs similarity index 100% rename from src/generator/splunk_hec.rs rename to lading/src/generator/splunk_hec.rs diff --git a/src/generator/splunk_hec/acknowledgements.rs b/lading/src/generator/splunk_hec/acknowledgements.rs similarity index 100% rename from src/generator/splunk_hec/acknowledgements.rs rename to lading/src/generator/splunk_hec/acknowledgements.rs diff --git a/src/generator/tcp.rs b/lading/src/generator/tcp.rs similarity index 100% rename from src/generator/tcp.rs rename to lading/src/generator/tcp.rs diff --git a/src/generator/udp.rs b/lading/src/generator/udp.rs similarity index 100% rename from src/generator/udp.rs rename to lading/src/generator/udp.rs diff --git a/src/generator/unix_datagram.rs b/lading/src/generator/unix_datagram.rs similarity index 100% rename from src/generator/unix_datagram.rs rename to lading/src/generator/unix_datagram.rs diff --git a/src/generator/unix_stream.rs b/lading/src/generator/unix_stream.rs similarity index 100% rename from src/generator/unix_stream.rs rename to lading/src/generator/unix_stream.rs diff --git a/src/inspector.rs b/lading/src/inspector.rs similarity index 100% rename from src/inspector.rs rename to lading/src/inspector.rs diff --git a/src/lib.rs b/lading/src/lib.rs similarity index 100% rename from src/lib.rs rename to lading/src/lib.rs diff --git a/src/observer.rs b/lading/src/observer.rs similarity index 100% rename from src/observer.rs rename to lading/src/observer.rs diff --git a/src/payload.rs b/lading/src/payload.rs similarity index 100% rename from src/payload.rs rename to lading/src/payload.rs diff --git a/src/payload/apache_common.rs b/lading/src/payload/apache_common.rs similarity index 100% rename from src/payload/apache_common.rs rename to lading/src/payload/apache_common.rs diff --git a/src/payload/ascii.rs b/lading/src/payload/ascii.rs similarity index 100% rename from src/payload/ascii.rs rename to lading/src/payload/ascii.rs diff --git a/src/payload/common.rs b/lading/src/payload/common.rs similarity index 100% rename from src/payload/common.rs rename to lading/src/payload/common.rs diff --git a/src/payload/datadog_logs.rs b/lading/src/payload/datadog_logs.rs similarity index 100% rename from src/payload/datadog_logs.rs rename to lading/src/payload/datadog_logs.rs diff --git a/src/payload/dogstatsd.rs b/lading/src/payload/dogstatsd.rs similarity index 100% rename from src/payload/dogstatsd.rs rename to lading/src/payload/dogstatsd.rs diff --git a/src/payload/dogstatsd/common.rs b/lading/src/payload/dogstatsd/common.rs similarity index 100% rename from src/payload/dogstatsd/common.rs rename to lading/src/payload/dogstatsd/common.rs diff --git a/src/payload/dogstatsd/common/tags.rs b/lading/src/payload/dogstatsd/common/tags.rs similarity index 100% rename from src/payload/dogstatsd/common/tags.rs rename to lading/src/payload/dogstatsd/common/tags.rs diff --git a/src/payload/dogstatsd/event.rs b/lading/src/payload/dogstatsd/event.rs similarity index 100% rename from src/payload/dogstatsd/event.rs rename to lading/src/payload/dogstatsd/event.rs diff --git a/src/payload/dogstatsd/metric.rs b/lading/src/payload/dogstatsd/metric.rs similarity index 100% rename from src/payload/dogstatsd/metric.rs rename to lading/src/payload/dogstatsd/metric.rs diff --git a/src/payload/dogstatsd/service_check.rs b/lading/src/payload/dogstatsd/service_check.rs similarity index 100% rename from src/payload/dogstatsd/service_check.rs rename to lading/src/payload/dogstatsd/service_check.rs diff --git a/src/payload/fluent.rs b/lading/src/payload/fluent.rs similarity index 100% rename from src/payload/fluent.rs rename to lading/src/payload/fluent.rs diff --git a/src/payload/json.rs b/lading/src/payload/json.rs similarity index 100% rename from src/payload/json.rs rename to lading/src/payload/json.rs diff --git a/src/payload/opentelemetry_log.rs b/lading/src/payload/opentelemetry_log.rs similarity index 100% rename from src/payload/opentelemetry_log.rs rename to lading/src/payload/opentelemetry_log.rs diff --git a/src/payload/opentelemetry_metric.rs b/lading/src/payload/opentelemetry_metric.rs similarity index 100% rename from src/payload/opentelemetry_metric.rs rename to lading/src/payload/opentelemetry_metric.rs diff --git a/src/payload/opentelemetry_trace.rs b/lading/src/payload/opentelemetry_trace.rs similarity index 100% rename from src/payload/opentelemetry_trace.rs rename to lading/src/payload/opentelemetry_trace.rs diff --git a/src/payload/splunk_hec.rs b/lading/src/payload/splunk_hec.rs similarity index 100% rename from src/payload/splunk_hec.rs rename to lading/src/payload/splunk_hec.rs diff --git a/src/payload/statik.rs b/lading/src/payload/statik.rs similarity index 100% rename from src/payload/statik.rs rename to lading/src/payload/statik.rs diff --git a/src/payload/syslog.rs b/lading/src/payload/syslog.rs similarity index 100% rename from src/payload/syslog.rs rename to lading/src/payload/syslog.rs diff --git a/src/payload/trace_agent.rs b/lading/src/payload/trace_agent.rs similarity index 100% rename from src/payload/trace_agent.rs rename to lading/src/payload/trace_agent.rs diff --git a/src/signals.rs b/lading/src/signals.rs similarity index 100% rename from src/signals.rs rename to lading/src/signals.rs diff --git a/src/target.rs b/lading/src/target.rs similarity index 100% rename from src/target.rs rename to lading/src/target.rs diff --git a/src/target_metrics.rs b/lading/src/target_metrics.rs similarity index 100% rename from src/target_metrics.rs rename to lading/src/target_metrics.rs diff --git a/src/target_metrics/expvar.rs b/lading/src/target_metrics/expvar.rs similarity index 100% rename from src/target_metrics/expvar.rs rename to lading/src/target_metrics/expvar.rs diff --git a/src/target_metrics/prometheus.rs b/lading/src/target_metrics/prometheus.rs similarity index 100% rename from src/target_metrics/prometheus.rs rename to lading/src/target_metrics/prometheus.rs diff --git a/src/throttle.rs b/lading/src/throttle.rs similarity index 100% rename from src/throttle.rs rename to lading/src/throttle.rs diff --git a/src/throttle/predictive.rs b/lading/src/throttle/predictive.rs similarity index 100% rename from src/throttle/predictive.rs rename to lading/src/throttle/predictive.rs diff --git a/src/throttle/stable.rs b/lading/src/throttle/stable.rs similarity index 100% rename from src/throttle/stable.rs rename to lading/src/throttle/stable.rs diff --git a/lading_capture/Cargo.toml b/lading_capture/Cargo.toml new file mode 100644 index 000000000..5dab4f937 --- /dev/null +++ b/lading_capture/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "lading-capture" +version = "0.1.0" +authors = ["Brian L. Troutwine ", "George Hahn labels = 5; +} + +// A collection of Lines +message Payload { + // An ID that is unique to a single lading run. + string run_id = 1; + // The time in milliseconds past the epoch that this Payload was collected. + uint64 time = 2; + // Global labels to be applied to every Line. + map global_labels = 3; + // The collection of Line instances + repeated Line lines = 4; +} diff --git a/lading_capture/src/json.rs b/lading_capture/src/json.rs new file mode 100644 index 000000000..3b86d638a --- /dev/null +++ b/lading_capture/src/json.rs @@ -0,0 +1,63 @@ +//! JSON form of a Lading capture Line, meant to be read line by line from a +//! file. + +use serde::Serialize; +use std::{borrow::Cow, collections::HashMap}; +use uuid::Uuid; + +use crate::proto::lading::v1; + +#[derive(Debug, Serialize, Clone, Copy)] +#[serde(rename_all = "snake_case")] +/// The kinds of metrics that are recorded in [`Line`]. +pub enum MetricKind { + /// A monotonically increasing value. + Counter, + /// A point-at-time value. + Gauge, +} + +impl From for MetricKind { + fn from(value: v1::MetricKind) -> Self { + match value { + v1::MetricKind::Unspecified => unreachable!(), + v1::MetricKind::Counter => MetricKind::Counter, + v1::MetricKind::Gauge => MetricKind::Gauge, + } + } +} + +#[derive(Debug, Serialize, Clone, Copy)] +/// The value for [`Line`]. +#[serde(untagged)] +pub enum LineValue { + /// A signless integer, 64 bits wide + Int(u64), + /// A floating point, 64 bits wide + Float(f64), +} + +#[derive(Debug, Serialize)] +/// The structure of a capture file line. +pub struct Line<'a> { + #[serde(borrow)] + /// An id that is mostly unique to this run, allowing us to distinguish + /// duplications of the same observational setup. + pub run_id: Cow<'a, Uuid>, + /// The time in milliseconds that this line was written. + pub time: u128, + /// The "fetch index". Previous versions of lading scraped prometheus + /// metrics from their targets and kept an increment index of polls. Now + /// this records the number of times the internal metrics cache has been + /// flushed. + pub fetch_index: u64, + /// The name of the metric recorded by this line. + pub metric_name: String, + /// The kind of metric recorded by this line. + pub metric_kind: MetricKind, + /// The value of the metric on this line. + pub value: LineValue, + #[serde(flatten)] + /// The labels associated with this metric. + pub labels: HashMap, +} diff --git a/lading_capture/src/lib.rs b/lading_capture/src/lib.rs new file mode 100644 index 000000000..64a4983a3 --- /dev/null +++ b/lading_capture/src/lib.rs @@ -0,0 +1,4 @@ +//! Crate regarding Lading's 'capture' files + +pub mod json; +pub mod proto; diff --git a/lading_capture/src/proto.rs b/lading_capture/src/proto.rs new file mode 100644 index 000000000..c5c70e5ad --- /dev/null +++ b/lading_capture/src/proto.rs @@ -0,0 +1,9 @@ +//! Protobuf generated structs + +/// Protobuf form of a Lading capture payload. Meant for transmission and not +/// archival. +pub mod lading { + pub mod v1 { + include!("proto/lading_capture.proto.capture.v1.rs"); + } +} diff --git a/lading_capture/src/proto/lading_capture.proto.capture.v1.rs b/lading_capture/src/proto/lading_capture.proto.capture.v1.rs new file mode 100644 index 000000000..669cb9ce7 --- /dev/null +++ b/lading_capture/src/proto/lading_capture.proto.capture.v1.rs @@ -0,0 +1,73 @@ +/// A capture value container, called a 'line' for historical reasons. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Line { + /// The name of the metric recorded by this line. + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + /// The kind of metric recorded by this line. + #[prost(enumeration = "MetricKind", tag = "3")] + pub kind: i32, + /// The value of the metric recorded by this line. + #[prost(double, tag = "4")] + pub value: f64, + /// Labels associated with this line. + #[prost(map = "string, string", tag = "5")] + pub labels: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, +} +/// A collection of Lines +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Payload { + /// An ID that is unique to a single lading run. + #[prost(string, tag = "1")] + pub run_id: ::prost::alloc::string::String, + /// The time in milliseconds past the epoch that this Payload was collected. + #[prost(uint64, tag = "2")] + pub time: u64, + /// Global labels to be applied to every Line. + #[prost(map = "string, string", tag = "3")] + pub global_labels: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, + /// The collection of Line instances + #[prost(message, repeated, tag = "4")] + pub lines: ::prost::alloc::vec::Vec, +} +/// The kinds of metrics that Lading produces. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MetricKind { + /// Unset + Unspecified = 0, + /// A monotonically increasing value. + Counter = 1, + /// A point-in-time value. + Gauge = 2, +} +impl MetricKind { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MetricKind::Unspecified => "METRIC_KIND_UNSPECIFIED", + MetricKind::Counter => "METRIC_KIND_COUNTER", + MetricKind::Gauge => "METRIC_KIND_GAUGE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "METRIC_KIND_UNSPECIFIED" => Some(Self::Unspecified), + "METRIC_KIND_COUNTER" => Some(Self::Counter), + "METRIC_KIND_GAUGE" => Some(Self::Gauge), + _ => None, + } + } +} diff --git a/regression/Dockerfile b/regression/Dockerfile index efe17fe4c..992884901 100644 --- a/regression/Dockerfile +++ b/regression/Dockerfile @@ -4,6 +4,7 @@ FROM docker.io/rust:1.68.1-bullseye@sha256:ce1f9cc5f88955a7384a957a64793012945a7c130883edab0af44168723c7b77 as builder WORKDIR /work COPY . . +RUN apt-get update && apt-get install -y protobuf-compiler && rm -rf /var/lib/apt/lists/* RUN cargo build --bin lading --release --locked #