From 64d323dec55cbfd6e7c693d57c5d535c7aa527b5 Mon Sep 17 00:00:00 2001 From: Mike Heffner Date: Thu, 5 Mar 2026 17:55:48 -0500 Subject: [PATCH 1/2] Bump to rotel 0.2.0 --- Cargo.lock | 149 +++++++++++++++++++++++++++++++++++++---------------- Cargo.toml | 4 +- 2 files changed, 106 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3615021..fe76679 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -941,6 +941,18 @@ version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +[[package]] +name = "const-hex" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" +dependencies = [ + "cfg-if", + "cpufeatures", + "proptest", + "serde_core", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -1249,6 +1261,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -1463,6 +1481,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" @@ -1471,7 +1498,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -1847,7 +1874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", ] [[package]] @@ -1895,15 +1922,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.15" @@ -2057,7 +2075,7 @@ version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" dependencies = [ - "hashbrown", + "hashbrown 0.16.1", ] [[package]] @@ -2267,9 +2285,8 @@ checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" [[package]] name = "opentelemetry" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" +version = "0.31.0" +source = "git+https://github.com/open-telemetry/opentelemetry-rust?rev=0948c61#0948c616cea77311165cd5a0e54f719679543ef9" dependencies = [ "futures-core", "futures-sink", @@ -2281,17 +2298,17 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" +version = "0.31.0" +source = "git+https://github.com/open-telemetry/opentelemetry-rust?rev=0948c61#0948c616cea77311165cd5a0e54f719679543ef9" dependencies = [ "base64", - "hex", + "const-hex", "opentelemetry", "opentelemetry_sdk", "prost", "serde", "tonic", + "tonic-prost", ] [[package]] @@ -2302,17 +2319,16 @@ checksum = "84b29a9f89f1a954936d5aa92f19b2feec3c8f3971d3e96206640db7f9706ae3" [[package]] name = "opentelemetry_sdk" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" +version = "0.31.0" +source = "git+https://github.com/open-telemetry/opentelemetry-rust?rev=0948c61#0948c616cea77311165cd5a0e54f719679543ef9" dependencies = [ "futures-channel", "futures-executor", "futures-util", "opentelemetry", "percent-encoding", + "portable-atomic", "rand 0.9.2", - "serde_json", "thiserror", ] @@ -2387,11 +2403,12 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", + "hashbrown 0.15.5", "indexmap", ] @@ -2508,11 +2525,26 @@ dependencies = [ "yansi", ] +[[package]] +name = "proptest" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" +dependencies = [ + "bitflags", + "num-traits", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "unarray", +] + [[package]] name = "prost" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", "prost-derive", @@ -2520,15 +2552,14 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck", - "itertools 0.14.0", + "itertools", "log", "multimap", - "once_cell", "petgraph", "prettyplease", "prost", @@ -2540,12 +2571,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools", "proc-macro2", "quote", "syn", @@ -2553,9 +2584,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ "prost", ] @@ -2630,7 +2661,7 @@ dependencies = [ "anyhow", "chrono", "inventory", - "itertools 0.13.0", + "itertools", "log", "maplit", "num-complex", @@ -2726,6 +2757,15 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.3", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -2809,9 +2849,10 @@ dependencies = [ [[package]] name = "rotel" -version = "0.1.9" -source = "git+https://github.com/streamfold/rotel?rev=v0.1.9#b1eb294118f85979026f68cd30ac9f37d3c15e27" +version = "0.2.0" +source = "git+https://github.com/streamfold/rotel?rev=v0.2.0#bfb82031ffadaba75cb4283fbd057615e7f68346" dependencies = [ + "base64", "bstr", "bytes", "chrono", @@ -2842,6 +2883,7 @@ dependencies = [ "opentelemetry-semantic-conventions", "opentelemetry_sdk", "pin-project", + "portable-atomic", "prost", "prost-build", "pyo3", @@ -2914,7 +2956,7 @@ dependencies = [ [[package]] name = "rotel_python_processor_sdk" version = "0.1.0" -source = "git+https://github.com/streamfold/rotel?rev=v0.1.9#b1eb294118f85979026f68cd30ac9f37d3c15e27" +source = "git+https://github.com/streamfold/rotel?rev=v0.2.0#bfb82031ffadaba75cb4283fbd057615e7f68346" dependencies = [ "opentelemetry-proto", "pyo3", @@ -3571,9 +3613,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" dependencies = [ "async-trait", "axum", @@ -3589,8 +3631,8 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", - "socket2 0.5.10", + "socket2 0.6.1", + "sync_wrapper", "tokio", "tokio-stream", "tower", @@ -3599,6 +3641,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "tonic-prost" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" +dependencies = [ + "bytes", + "prost", + "tonic", +] + [[package]] name = "tower" version = "0.5.2" @@ -3780,6 +3833,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "uncased" version = "0.9.10" @@ -3840,7 +3899,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utilities" version = "0.0.1" -source = "git+https://github.com/streamfold/rotel?rev=v0.1.9#b1eb294118f85979026f68cd30ac9f37d3c15e27" +source = "git+https://github.com/streamfold/rotel?rev=v0.2.0#bfb82031ffadaba75cb4283fbd057615e7f68346" dependencies = [ "chrono", "opentelemetry-proto", diff --git a/Cargo.toml b/Cargo.toml index 28711cd..d217b6b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,9 +35,9 @@ tracing-appender = "0.2.3" tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } tower = { version = "0.5.2", features = ["retry", "timeout"] } dotenvy = { git = "https://github.com/streamfold/dotenvy", branch = "custom-substitution" } -rotel = { git = "https://github.com/streamfold/rotel", rev = "v0.1.9", default-features = false, optional = true } +rotel = { git = "https://github.com/streamfold/rotel", rev = "v0.2.0", default-features = false, optional = true } lambda-extension = "1.0.1" -opentelemetry-proto = "0.30.0" +opentelemetry-proto = { git = "https://github.com/open-telemetry/opentelemetry-rust", rev = "0948c61" } flate2 = "1.1" [dev-dependencies] From d555b1f6d83d0febadcb7bb5001eb979be452ac5 Mon Sep 17 00:00:00 2001 From: Mike Heffner Date: Thu, 5 Mar 2026 17:55:56 -0500 Subject: [PATCH 2/2] Use nested KV depth --- cloudformation-stacks/forwarder-clickhouse.template.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/cloudformation-stacks/forwarder-clickhouse.template.yaml b/cloudformation-stacks/forwarder-clickhouse.template.yaml index 00224d5..9ffb936 100644 --- a/cloudformation-stacks/forwarder-clickhouse.template.yaml +++ b/cloudformation-stacks/forwarder-clickhouse.template.yaml @@ -499,6 +499,7 @@ Resources: ROTEL_CLICKHOUSE_EXPORTER_DATABASE: !Ref "ClickhouseDatabase" ROTEL_CLICKHOUSE_EXPORTER_TABLE_PREFIX: !Ref "ClickhouseTablePrefix" ROTEL_CLICKHOUSE_EXPORTER_ENABLE_JSON: !Ref "ClickhouseEnableJson" + ROTEL_CLICKHOUSE_EXPORTER_NESTED_KV_MAX_DEPTH: "5" ROTEL_OTEL_RESOURCE_ATTRIBUTES: !Ref "ResourceAttributes" ROTEL_EXPORTER_RETRY_MAX_ELAPSED_TIME: !Sub "${FunctionTimeout}s" FORWARDER_S3_BUCKET: !Ref ForwarderBucket