chore: Update deps (including arrow 5.1.0, tonic -> 0.5, and prost 0.5) (#2172)

* chore: Update deps (including arrow 5.0.0 --> arrow 5.1.0)

* chore: update all the things

* refactor: Update serving readiness check due to change in Tonic API

* chore: update more deps

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
pull/24376/head
Andrew Lamb 2021-08-05 11:57:38 -04:00 committed by GitHub
parent 9fc8141362
commit e92e94caad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 390 additions and 235 deletions

382
Cargo.lock generated
View File

@ -66,9 +66,9 @@ dependencies = [
[[package]]
name = "alloc-no-stdlib"
version = "2.0.1"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5192ec435945d87bc2f70992b4d818154b5feede43c09fb7592146374eac90a6"
checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3"
[[package]]
name = "alloc-stdlib"
@ -126,9 +126,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "arrow"
version = "5.0.0"
version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06d2bd50fddbdcecd832742b388228eec02eb3aabd33144ef46f6bc5420bf662"
checksum = "ddf189dff0c7e0f40588fc25adbe5bb6837b82fc61bb7cadf5d76de030f710bb"
dependencies = [
"bitflags",
"chrono",
@ -150,19 +150,19 @@ dependencies = [
[[package]]
name = "arrow-flight"
version = "5.0.0"
version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "628b4735031e1d5e41c7c1f210ad233ab942adcf155edcba05c3e6d762062349"
checksum = "947ab99b9dc270706b1a4bd8109628416dc52348f1645075fcc19fe6b9819055"
dependencies = [
"arrow",
"base64 0.13.0",
"bytes",
"proc-macro2",
"prost",
"prost-derive",
"prost 0.8.0",
"prost-derive 0.8.0",
"tokio",
"tonic",
"tonic-build",
"tonic 0.5.0",
"tonic-build 0.5.1",
]
[[package]]
@ -191,9 +191,9 @@ dependencies = [
[[package]]
name = "assert_cmd"
version = "1.0.7"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d20831bd004dda4c7c372c19cdabff369f794a95e955b3f13fe460e3e1ae95f"
checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe"
dependencies = [
"bstr",
"doc-comment",
@ -409,9 +409,9 @@ dependencies = [
[[package]]
name = "brotli"
version = "3.3.0"
version = "3.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f29919120f08613aadcd4383764e00526fc9f18b6c0895814faeed0dd78613e"
checksum = "71cb90ade945043d3d53597b2fc359bb063db8ade2bcffe7997351d0756e9d50"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@ -420,9 +420,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
version = "2.3.1"
version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1052e1c3b8d4d80eb84a8b94f0a1498797b5fb96314c001156a1c761940ef4ec"
checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@ -727,9 +727,9 @@ dependencies = [
[[package]]
name = "crossbeam-deque"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [
"cfg-if",
"crossbeam-epoch",
@ -847,7 +847,7 @@ dependencies = [
[[package]]
name = "datafusion"
version = "4.0.0-SNAPSHOT"
source = "git+https://github.com/apache/arrow-datafusion.git?rev=2bcf04017d710a6b8684617e81a64c9db1184f5c#2bcf04017d710a6b8684617e81a64c9db1184f5c"
source = "git+https://github.com/apache/arrow-datafusion.git?rev=a5a58c4f23720eda63b02a6cad2902b715288db6#a5a58c4f23720eda63b02a6cad2902b715288db6"
dependencies = [
"ahash 0.7.4",
"arrow",
@ -1287,15 +1287,15 @@ dependencies = [
"num_cpus",
"observability_deps",
"proc-macro2",
"prost",
"prost-build",
"prost-types",
"prost 0.8.0",
"prost-build 0.8.0",
"prost-types 0.8.0",
"regex",
"serde",
"serde_json",
"thiserror",
"tonic",
"tonic-build",
"tonic 0.5.0",
"tonic-build 0.5.1",
]
[[package]]
@ -1348,8 +1348,8 @@ version = "0.1.0"
dependencies = [
"bytes",
"chrono",
"prost",
"prost-build",
"prost 0.8.0",
"prost-build 0.8.0",
"serde",
]
@ -1363,15 +1363,15 @@ dependencies = [
"grpc-router-test-gen",
"observability_deps",
"paste 1.0.5",
"prost",
"prost-build",
"prost-types",
"prost 0.8.0",
"prost-build 0.8.0",
"prost-types 0.8.0",
"thiserror",
"tokio",
"tokio-stream",
"tokio-util",
"tonic",
"tonic-build",
"tonic 0.5.0",
"tonic-build 0.5.1",
"tonic-reflection",
]
@ -1379,11 +1379,11 @@ dependencies = [
name = "grpc-router-test-gen"
version = "0.1.0"
dependencies = [
"prost",
"prost-build",
"prost-types",
"tonic",
"tonic-build",
"prost 0.8.0",
"prost-build 0.8.0",
"prost-types 0.8.0",
"tonic 0.5.0",
"tonic-build 0.5.1",
]
[[package]]
@ -1541,6 +1541,18 @@ dependencies = [
"webpki",
]
[[package]]
name = "hyper-timeout"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
dependencies = [
"hyper",
"pin-project-lite",
"tokio",
"tokio-io-timeout",
]
[[package]]
name = "hyper-tls"
version = "0.5.0"
@ -1657,7 +1669,7 @@ dependencies = [
"pprof",
"predicates 1.0.8",
"prettytable-rs",
"prost",
"prost 0.8.0",
"query",
"rand 0.8.4",
"rdkafka",
@ -1680,10 +1692,10 @@ dependencies = [
"tokio",
"tokio-stream",
"tokio-util",
"tonic",
"tonic 0.5.0",
"tonic-health",
"tonic-reflection",
"tracing-opentelemetry",
"tracing-opentelemetry 0.12.0",
"tracker",
"trogging",
"uuid",
@ -1701,13 +1713,13 @@ dependencies = [
"generated_types",
"http",
"hyper",
"prost",
"prost 0.8.0",
"rand 0.8.4",
"serde",
"serde_json",
"thiserror",
"tokio",
"tonic",
"tonic 0.5.0",
]
[[package]]
@ -1795,18 +1807,18 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
[[package]]
name = "jobserver"
version = "0.1.22"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd"
checksum = "f5ca711fd837261e14ec9e674f092cbb931d3fa1482b017ae59328ddc6f3212b"
dependencies = [
"libc",
]
[[package]]
name = "js-sys"
version = "0.3.51"
version = "0.3.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062"
checksum = "ce791b7ca6638aae45be056e068fc756d871eb3b3b10b8efa62d1c9cec616752"
dependencies = [
"wasm-bindgen",
]
@ -2308,9 +2320,9 @@ dependencies = [
[[package]]
name = "num_enum"
version = "0.5.2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5adf0198d427ee515335639f275e806ca01acf9f07d7cf14bb36a10532a6169"
checksum = "ee2c8fd66061a707503d515639b8af10fd3807a5b5ee6959f7ff1bd303634bd5"
dependencies = [
"derivative",
"num_enum_derive",
@ -2318,9 +2330,9 @@ dependencies = [
[[package]]
name = "num_enum_derive"
version = "0.5.2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1def5a3f69d4707d8a040b12785b98029a39e8c610ae685c7f6265669767482"
checksum = "474fd1d096da3ad17084694eebed40ba09c4a36c5255cd772bd8b98859cc562e"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@ -2385,7 +2397,7 @@ dependencies = [
name = "observability_deps"
version = "0.1.0"
dependencies = [
"opentelemetry",
"opentelemetry 0.15.0",
"tracing",
"tracing-subscriber",
]
@ -2451,6 +2463,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91cea1dfd50064e52db033179952d18c770cbc5dfefc8eba45d619357ba3914"
dependencies = [
"async-trait",
"futures",
"js-sys",
"lazy_static",
"percent-encoding",
"pin-project 1.0.8",
"rand 0.8.4",
"thiserror",
]
[[package]]
name = "opentelemetry"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff27b33e30432e7b9854936693ca103d8591b0501f7ae9f633de48cda3bf2a67"
dependencies = [
"async-trait",
"crossbeam-channel",
"dashmap",
"fnv",
"futures",
@ -2466,13 +2495,13 @@ dependencies = [
[[package]]
name = "opentelemetry-jaeger"
version = "0.12.1"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddd4984441954f9ebbe3eebdfc6fd4fa95be6400d403171228779b949f3cd918"
checksum = "09a9fc8192722e7daa0c56e59e2336b797122fb8598383dcb11c8852733b435c"
dependencies = [
"async-trait",
"lazy_static",
"opentelemetry",
"opentelemetry 0.15.0",
"thiserror",
"thrift",
"tokio",
@ -2480,27 +2509,28 @@ dependencies = [
[[package]]
name = "opentelemetry-otlp"
version = "0.6.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09c19adec09e1d86bdc72cbc2dea6d7276d90d6d50ad430842446382a4ef440b"
checksum = "c42168ec1ee8fe85f36600c41196963eb075ccdd0aaac947119f1f562c0804dd"
dependencies = [
"async-trait",
"futures",
"opentelemetry",
"prost",
"http",
"opentelemetry 0.15.0",
"prost 0.7.0",
"thiserror",
"tokio",
"tonic",
"tonic-build",
"tonic 0.4.3",
"tonic-build 0.4.2",
]
[[package]]
name = "opentelemetry-prometheus"
version = "0.6.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7162eac03f0bf5edbe2f2d4f44279904f62c779cd1c8260456446db2e1bf200d"
checksum = "e06ddda4790151e8b494f9bb32720fce23722d7f395f81383b9b2934bb6356a0"
dependencies = [
"opentelemetry",
"opentelemetry 0.15.0",
"prometheus",
"protobuf",
]
@ -2595,9 +2625,9 @@ dependencies = [
[[package]]
name = "parquet"
version = "5.0.0"
version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9297cb17ef7287f6105685d230abbb2b37247657edf2b4a99271088e7d5b0ddd"
checksum = "db54d10313f64ea22e1fe0332864abefb19aa1c322bfbc67999ff743aebf868d"
dependencies = [
"arrow",
"base64 0.13.0",
@ -2645,7 +2675,7 @@ dependencies = [
"parquet",
"parquet-format",
"persistence_windows",
"prost",
"prost 0.8.0",
"query",
"snafu",
"tempfile",
@ -2820,9 +2850,9 @@ dependencies = [
[[package]]
name = "pprof"
version = "0.4.4"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c7600124d694d855283caf9f333befe2abce090833bb638009aeddd9e156dee"
checksum = "c9fb4eee2f2c4f7d48fe5a33008dececbc405d0e58d2a94afe742d4f175bc401"
dependencies = [
"backtrace",
"inferno",
@ -2831,9 +2861,9 @@ dependencies = [
"log",
"nix",
"parking_lot",
"prost",
"prost-build",
"prost-derive",
"prost 0.8.0",
"prost-build 0.8.0",
"prost-derive 0.8.0",
"symbolic-demangle",
"tempfile",
"thiserror",
@ -2976,7 +3006,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
dependencies = [
"bytes",
"prost-derive",
"prost-derive 0.7.0",
]
[[package]]
name = "prost"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
dependencies = [
"bytes",
"prost-derive 0.8.0",
]
[[package]]
@ -2991,10 +3031,28 @@ dependencies = [
"log",
"multimap",
"petgraph",
"prost",
"prost-types",
"prost 0.7.0",
"prost-types 0.7.0",
"tempfile",
"which 4.2.1",
"which 4.2.2",
]
[[package]]
name = "prost-build"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
dependencies = [
"bytes",
"heck",
"itertools 0.10.1",
"log",
"multimap",
"petgraph",
"prost 0.8.0",
"prost-types 0.8.0",
"tempfile",
"which 4.2.2",
]
[[package]]
@ -3010,6 +3068,19 @@ dependencies = [
"syn",
]
[[package]]
name = "prost-derive"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
dependencies = [
"anyhow",
"itertools 0.10.1",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "prost-types"
version = "0.7.0"
@ -3017,7 +3088,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
dependencies = [
"bytes",
"prost",
"prost 0.7.0",
]
[[package]]
name = "prost-types"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
dependencies = [
"bytes",
"prost 0.8.0",
]
[[package]]
@ -3553,7 +3634,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver 1.0.3",
"semver 1.0.4",
]
[[package]]
@ -3680,9 +3761,9 @@ dependencies = [
[[package]]
name = "semver"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe"
checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
[[package]]
name = "semver-parser"
@ -3692,9 +3773,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
version = "1.0.126"
version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8"
dependencies = [
"serde_derive",
]
@ -3723,9 +3804,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.126"
version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc"
dependencies = [
"proc-macro2",
"quote",
@ -3734,9 +3815,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.65"
version = "1.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28c5e91e4240b46c4c19219d6cc84784444326131a4210f496f948d5cc827a29"
checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127"
dependencies = [
"indexmap",
"itoa",
@ -3862,9 +3943,9 @@ dependencies = [
[[package]]
name = "sharded-slab"
version = "0.1.1"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982"
dependencies = [
"lazy_static",
]
@ -4374,6 +4455,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "tokio-io-timeout"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90c49f106be240de154571dd31fbe48acb10ba6c6dd6f6517ad603abffa42de9"
dependencies = [
"pin-project-lite",
"tokio",
]
[[package]]
name = "tokio-macros"
version = "1.3.0"
@ -4458,8 +4549,8 @@ dependencies = [
"hyper",
"percent-encoding",
"pin-project 1.0.8",
"prost",
"prost-derive",
"prost 0.7.0",
"prost-derive 0.7.0",
"tokio",
"tokio-stream",
"tokio-util",
@ -4469,6 +4560,37 @@ dependencies = [
"tracing-futures",
]
[[package]]
name = "tonic"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b584f064fdfc50017ec39162d5aebce49912f1eb16fd128e04b7f4ce4907c7e5"
dependencies = [
"async-stream",
"async-trait",
"base64 0.13.0",
"bytes",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"hyper",
"hyper-timeout",
"percent-encoding",
"pin-project 1.0.8",
"prost 0.8.0",
"prost-derive 0.8.0",
"tokio",
"tokio-stream",
"tokio-util",
"tower",
"tower-layer",
"tower-service",
"tracing",
"tracing-futures",
]
[[package]]
name = "tonic-build"
version = "0.4.2"
@ -4476,39 +4598,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c695de27302f4697191dda1c7178131a8cb805463dda02864acb80fe1322fdcf"
dependencies = [
"proc-macro2",
"prost-build",
"prost-build 0.7.0",
"quote",
"syn",
]
[[package]]
name = "tonic-build"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d12faebbe071b06f486be82cc9318350814fdd07fcb28f3690840cd770599283"
dependencies = [
"proc-macro2",
"prost-build 0.8.0",
"quote",
"syn",
]
[[package]]
name = "tonic-health"
version = "0.3.1"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee731ed39b584aa7fadc723eca93608c3de6ad316531d594632a2c85d28c4e59"
checksum = "14e6de0a7a1b27d9899031b01b83eb09fdc36f3fe8e6254a81840006a463c6d5"
dependencies = [
"async-stream",
"bytes",
"prost",
"prost 0.8.0",
"tokio",
"tokio-stream",
"tonic",
"tonic-build",
"tonic 0.5.0",
"tonic-build 0.5.1",
]
[[package]]
name = "tonic-reflection"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56498d20188550337ea6c48ecf59d11646382dbfcd61051fb98c1093cfae3c21"
checksum = "8249761575cfef2635c3df0aa9f09d8e42d53ff0f7c21739ff2b37dd3343d827"
dependencies = [
"bytes",
"prost",
"prost-types",
"prost 0.8.0",
"prost-types 0.8.0",
"tokio",
"tokio-stream",
"tonic",
"tonic-build",
"tonic 0.5.0",
"tonic-build 0.5.1",
]
[[package]]
@ -4592,7 +4726,19 @@ version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99003208b647dae59dcefc49c98aecaa3512fbc29351685d4b9ef23a9218458e"
dependencies = [
"opentelemetry",
"opentelemetry 0.13.0",
"tracing",
"tracing-core",
"tracing-subscriber",
]
[[package]]
name = "tracing-opentelemetry"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c47440f2979c4cd3138922840eec122e3c0ba2148bc290f756bd7fd60fc97fff"
dependencies = [
"opentelemetry 0.15.0",
"tracing",
"tracing-core",
"tracing-subscriber",
@ -4663,7 +4809,7 @@ dependencies = [
"structopt",
"synchronized-writer",
"thiserror",
"tracing-opentelemetry",
"tracing-opentelemetry 0.14.0",
]
[[package]]
@ -4811,9 +4957,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
[[package]]
name = "wasm-bindgen"
version = "0.2.74"
version = "0.2.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd"
checksum = "b608ecc8f4198fe8680e2ed18eccab5f0cd4caaf3d83516fa5fb2e927fda2586"
dependencies = [
"cfg-if",
"serde",
@ -4823,9 +4969,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.74"
version = "0.2.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900"
checksum = "580aa3a91a63d23aac5b6b267e2d13cb4f363e31dce6c352fca4752ae12e479f"
dependencies = [
"bumpalo",
"lazy_static",
@ -4838,9 +4984,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.24"
version = "0.4.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1"
checksum = "16646b21c3add8e13fdb8f20172f8a28c3dbf62f45406bcff0233188226cfe0c"
dependencies = [
"cfg-if",
"js-sys",
@ -4850,9 +4996,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.74"
version = "0.2.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4"
checksum = "171ebf0ed9e1458810dfcb31f2e766ad6b3a89dbda42d8901f2b268277e5f09c"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -4860,9 +5006,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.74"
version = "0.2.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
checksum = "6c2657dd393f03aa2a659c25c6ae18a13a4048cebd220e147933ea837efc589f"
dependencies = [
"proc-macro2",
"quote",
@ -4873,15 +5019,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.74"
version = "0.2.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f"
checksum = "2e0c4a743a309662d45f4ede961d7afa4ba4131a59a639f29b0069c3798bbcc2"
[[package]]
name = "web-sys"
version = "0.3.51"
version = "0.3.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582"
checksum = "01c70a82d842c9979078c772d4a1344685045f1a5628f677c2b2eab4dd7d2696"
dependencies = [
"js-sys",
"wasm-bindgen",
@ -4917,9 +5063,9 @@ dependencies = [
[[package]]
name = "which"
version = "4.2.1"
version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cc009ab82a2afc94b9e467ab4214aee9cad1356cd9191264203d7d72006e00d"
checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9"
dependencies = [
"either",
"lazy_static",

View File

@ -91,15 +91,15 @@ http = "0.2.0"
hyper = "0.14"
libc = { version = "0.2" }
once_cell = { version = "1.4.0", features = ["parking_lot"] }
opentelemetry-jaeger = { version = "0.12", features = ["tokio"] }
opentelemetry-otlp = "0.6"
opentelemetry-jaeger = { version = "0.14", features = ["tokio"] }
opentelemetry-otlp = "0.8"
parking_lot = "0.11.1"
itertools = "0.10.1"
parquet = "5.0"
# used by arrow/datafusion anyway
prettytable-rs = "0.8"
pprof = { version = "^0.4", default-features = false, features = ["flamegraph", "protobuf"] }
prost = "0.7"
pprof = { version = "^0.5", default-features = false, features = ["flamegraph", "protobuf"] }
prost = "0.8"
# Forked to upgrade hyper and tokio
routerify = { git = "https://github.com/influxdata/routerify", rev = "274e250" }
rustyline = "8.0"
@ -114,9 +114,9 @@ tikv-jemalloc-ctl = "0.4.0"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread", "parking_lot", "signal"] }
tokio-stream = { version = "0.1.2", features = ["net"] }
tokio-util = { version = "0.6.3" }
tonic = "0.4.0"
tonic-health = "0.3.0"
tonic-reflection = "0.1.0"
tonic = "0.5.0"
tonic-health = "0.4.0"
tonic-reflection = "0.2.0"
tracing-opentelemetry = { version = "0.12", default-features = false }
uuid = { version = "0.8", features = ["v4"] }

View File

@ -9,4 +9,4 @@ description = "Re-exports datafusion at a specific version"
# Rename to workaround doctest bug
# Turn off optional datafusion features (function packages)
upstream = { git = "https://github.com/apache/arrow-datafusion.git", rev="2bcf04017d710a6b8684617e81a64c9db1184f5c", default-features = false, package = "datafusion" }
upstream = { git = "https://github.com/apache/arrow-datafusion.git", rev="a5a58c4f23720eda63b02a6cad2902b715288db6", default-features = false, package = "datafusion" }

View File

@ -14,13 +14,13 @@ futures = "0.3"
google_types = { path = "../google_types" }
observability_deps = { path = "../observability_deps" }
num_cpus = "1.13.0"
prost = "0.7"
prost-types = "0.7"
prost = "0.8"
prost-types = "0.8"
regex = "1.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.44"
thiserror = "1.0.23"
tonic = "0.4"
tonic = "0.5"
[dev-dependencies]
chrono = { version = "0.4", features = ["serde"] }
@ -28,5 +28,5 @@ chrono = { version = "0.4", features = ["serde"] }
[build-dependencies] # In alphabetical order
# Pin specific version of the tonic-build dependencies to match arrow
proc-macro2 = "=1.0.27"
tonic-build = "0.4"
prost-build = "0.7"
tonic-build = "0.5"
prost-build = "0.8"

View File

@ -8,8 +8,8 @@ edition = "2018"
[dependencies] # In alphabetical order
bytes = { version = "1.0", features = ["serde"] }
chrono = "0.4"
prost = "0.7"
prost = "0.8"
serde = { version = "1.0", features = ["derive"] }
[build-dependencies] # In alphabetical order
prost-build = "0.7"
prost-build = "0.8"

View File

@ -10,19 +10,19 @@ cache_loader_async = {version = "0.1.0", features = ["ttl-cache"] }
futures = "0.3"
observability_deps = { path = "../observability_deps" }
paste = "1.0.5"
prost = "0.7"
prost-types = "0.7"
prost = "0.8"
prost-types = "0.8"
thiserror = "1.0.23"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread", "parking_lot", "signal"] }
tokio-stream = { version = "0.1.2", features = ["net"] }
tokio-util = { version = "0.6.3" }
tonic = "0.4"
tonic-reflection = "0.1.0"
tonic = "0.5"
tonic-reflection = "0.2.0"
[build-dependencies]
paste = "1.0.5"
prost-build = "0.7"
tonic-build = "0.4"
prost-build = "0.8"
tonic-build = "0.5"
[dev-dependencies]
grpc-router-test-gen = { path = "./grpc-router-test-gen" }

View File

@ -6,10 +6,10 @@ edition = "2018"
description = "Protobuf used in test for the grpc-router crate; need to be in a separate create because of linter limitations"
[dependencies]
tonic = "0.4"
prost = "0.7"
prost-types = "0.7"
tonic = "0.5"
prost = "0.8"
prost-types = "0.8"
[build-dependencies]
tonic-build = "0.4"
prost-build = "0.7"
tonic-build = "0.5"
prost-build = "0.8"

View File

@ -19,13 +19,13 @@ arrow-flight = { version = "5.0", optional = true}
futures-util = { version = "0.3.1", optional = true }
http = "0.2.3"
hyper = "0.14"
prost = "0.7"
prost = "0.8"
rand = "0.8.3"
serde = "1.0.118"
serde_json = { version = "1.0.44", optional = true }
thiserror = "1.0.23"
tokio = { version = "1.0", features = ["macros"] }
tonic = { version = "0.4.0" }
tonic = { version = "0.5.0" }
[dev-dependencies] # In alphabetical order
serde_json = "1.0"

View File

@ -17,10 +17,9 @@ edition = "2018"
dashmap = { version = "4.0.1" }
hashbrown = "0.11"
observability_deps = { path = "../observability_deps" }
opentelemetry-prometheus = "0.6"
opentelemetry-prometheus = "0.8"
parking_lot = "0.11.1"
prometheus = "0.12"
snafu = "0.6"
[dev-dependencies] # In alphabetical order

View File

@ -6,6 +6,6 @@ edition = "2018"
description = "Observability ecosystem dependencies for InfluxDB IOx, to ensure consistent versions and unified updates"
[dependencies] # In alphabetical order
opentelemetry = { version = "0.13", default-features = false, features = ["trace", "metrics", "rt-tokio"] }
opentelemetry = { version = "0.15", default-features = false, features = ["trace", "metrics", "rt-tokio"] }
tracing = { version = "0.1", features = ["max_level_trace", "release_max_level_debug"] }
tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "smallvec", "chrono", "parking_lot", "registry", "fmt", "ansi", "json"] }

View File

@ -24,7 +24,7 @@ parquet = "5.0"
parquet-format = "2.6"
parking_lot = "0.11.1"
persistence_windows = { path = "../persistence_windows" }
prost = "0.7"
prost = "0.8"
query = { path = "../query" }
snafu = "0.6"
tempfile = "3.1.0"

View File

@ -5,11 +5,11 @@ use snafu::{ResultExt, Snafu};
use tokio::net::TcpListener;
use tokio_stream::wrappers::TcpListenerStream;
use tokio_util::sync::CancellationToken;
use tonic::codegen::InterceptedService;
use tonic::transport::NamedService;
use crate::influxdb_ioxd::serving_readiness::{ServingReadiness, ServingReadinessState};
use crate::influxdb_ioxd::serving_readiness::ServingReadiness;
use server::{ApplicationState, ConnectionManager, Server};
use tonic::{Interceptor, Status};
pub mod error;
mod flight;
@ -38,36 +38,28 @@ fn service_name<S: NamedService>(_: &S) -> &'static str {
S::NAME
}
/// Adds a gRPC service to ServiceBuilder `builder` while registering it to the HealthReporter `health_reporter`.
/// Adds a gRPC service to the builder, and registers it with the
/// health reporter
macro_rules! add_service {
($builder:ident, $health_reporter:ident, $status:expr, $($tail:tt)* ) => {{
add_service!(@internal $ builder, $health_reporter, $status, $($tail)* );
$builder
}};
(@internal $builder:ident, $health_reporter:ident, $status:expr, [ $($svc:expr),* $(,)*] $(,)*) => {
$(
let service = $svc;
$health_reporter.set_service_status(service_name(&service), $status).await;
let $builder = $builder.add_service(service);
)*
($builder:ident, $health_reporter:expr, $svc:expr) => {
let service = $svc;
let status = tonic_health::ServingStatus::Serving;
$health_reporter
.set_service_status(service_name(&service), status)
.await;
let $builder = $builder.add_service(service);
};
}
/// Implements the gRPC interceptor that returns SERVICE_UNAVAILABLE gRPC status
/// if the service is not ready.
#[derive(Debug, Clone)]
pub struct ServingReadinessInterceptor(ServingReadiness);
impl From<ServingReadinessInterceptor> for Interceptor {
fn from(serving_readiness: ServingReadinessInterceptor) -> Self {
let interceptor = move |req| match serving_readiness.0.get() {
ServingReadinessState::Unavailable => {
Err(Status::unavailable("service not ready to serve"))
}
ServingReadinessState::Serving => Ok(req),
};
interceptor.into()
}
/// Adds a gRPC service to the builder gated behind the serving
/// readiness check, and registers it with the health reporter
macro_rules! add_gated_service {
($builder:ident, $health_reporter:expr, $serving_readiness:expr, $svc:expr) => {
let service = $svc;
let interceptor = $serving_readiness.clone().into_interceptor();
let service = InterceptedService::new(service, interceptor);
add_service!($builder, $health_reporter, service);
};
}
/// Instantiate a server listening on the specified address
@ -92,32 +84,54 @@ where
.build()
.context(ReflectionError)?;
let serving_gate = ServingReadinessInterceptor(serving_readiness.clone());
let mut builder = tonic::transport::Server::builder();
let builder = add_service!(
// important that this one is NOT gated so that it can answer health requests
add_service!(builder, health_reporter, health_service);
add_service!(builder, health_reporter, reflection_service);
add_service!(builder, health_reporter, testing::make_server());
add_gated_service!(
builder,
health_reporter,
tonic_health::ServingStatus::Serving,
[
health_service,
reflection_service,
testing::make_server(),
storage::make_server(
Arc::clone(&server),
Arc::clone(application.metric_registry()),
serving_gate.clone(),
),
flight::make_server(Arc::clone(&server), serving_gate.clone()),
write::make_server(Arc::clone(&server), serving_gate.clone()),
write_pb::make_server(Arc::clone(&server), serving_gate.clone()),
management::make_server(
Arc::clone(&application),
Arc::clone(&server),
serving_readiness.clone()
),
operations::make_server(Arc::clone(application.job_registry())),
],
serving_readiness,
storage::make_server(
Arc::clone(&server),
Arc::clone(application.metric_registry()),
)
);
add_gated_service!(
builder,
health_reporter,
serving_readiness,
flight::make_server(Arc::clone(&server))
);
add_gated_service!(
builder,
health_reporter,
serving_readiness,
write::make_server(Arc::clone(&server))
);
add_gated_service!(
builder,
health_reporter,
serving_readiness,
write_pb::make_server(Arc::clone(&server))
);
// Also important this is not behind a readiness check (as it is
// used to change the check!)
add_service!(
builder,
health_reporter,
management::make_server(
Arc::clone(&application),
Arc::clone(&server),
serving_readiness.clone()
)
);
add_service!(
builder,
health_reporter,
operations::make_server(Arc::clone(application.job_registry()))
);
builder

View File

@ -6,7 +6,7 @@ use observability_deps::tracing::{info, warn};
use query::exec::ExecutorType;
use serde::Deserialize;
use snafu::{OptionExt, ResultExt, Snafu};
use tonic::{Interceptor, Request, Response, Streaming};
use tonic::{Request, Response, Streaming};
use arrow::{
array::{make_array, ArrayRef, MutableArrayData},
@ -124,14 +124,11 @@ struct FlightService<M: ConnectionManager> {
server: Arc<Server<M>>,
}
pub fn make_server<M>(
server: Arc<Server<M>>,
interceptor: impl Into<Interceptor>,
) -> FlightServer<impl Flight>
pub fn make_server<M>(server: Arc<Server<M>>) -> FlightServer<impl Flight>
where
M: ConnectionManager + Send + Sync + Debug + 'static,
{
FlightServer::with_interceptor(FlightService { server }, interceptor)
FlightServer::new(FlightService { server })
}
#[tonic::async_trait]

View File

@ -18,7 +18,6 @@ use generated_types::storage_server::{Storage, StorageServer};
use metrics::{MetricRegistry, RedMetric};
use query::DatabaseStore;
use std::sync::Arc;
use tonic::Interceptor;
/// Concrete implementation of the gRPC InfluxDB Storage Service API
#[derive(Debug)]
@ -30,15 +29,11 @@ struct StorageService<T: DatabaseStore> {
pub fn make_server<T: DatabaseStore + 'static>(
db_store: Arc<T>,
metrics_registry: Arc<MetricRegistry>,
interceptor: impl Into<Interceptor>,
) -> StorageServer<impl Storage> {
StorageServer::with_interceptor(
StorageService {
db_store,
metrics: Metrics::new(metrics_registry),
},
interceptor,
)
StorageServer::new(StorageService {
db_store,
metrics: Metrics::new(metrics_registry),
})
}
// These are the metrics associated with the gRPC server.

View File

@ -1161,7 +1161,6 @@ where
#[cfg(test)]
mod tests {
use super::super::super::ServingReadinessInterceptor;
use super::super::id::Id;
use super::*;
@ -1175,8 +1174,6 @@ mod tests {
};
use test_helpers::{assert_contains, tag_key_bytes_to_strings, tracing::TracingCapture};
use tonic::Code;
use futures::prelude::*;
use generated_types::{
@ -1185,7 +1182,6 @@ mod tests {
Window as RPCWindow,
};
use crate::influxdb_ioxd::serving_readiness::ServingReadinessState;
use generated_types::google::protobuf::Any;
use prost::Message;
use tokio_stream::wrappers::TcpListenerStream;
@ -1902,8 +1898,8 @@ mod tests {
panic!("Unexpected success: {:?}", response);
}
Err(status) => {
assert_eq!(status.code(), Code::Cancelled);
assert_contains!(status.message(), "stream no longer needed");
assert_eq!(status.code(), tonic::Code::Unknown);
assert_contains!(status.message(), "transport error");
}
};
@ -2819,7 +2815,6 @@ mod tests {
.add_service(crate::influxdb_ioxd::rpc::storage::make_server(
Arc::clone(&test_storage),
test_storage.metrics_registry.registry(),
ServingReadinessInterceptor(ServingReadinessState::Serving.into()),
));
let server = async move {

View File

@ -6,7 +6,7 @@ use influxdb_line_protocol::parse_lines;
use observability_deps::tracing::debug;
use server::{ConnectionManager, Server};
use std::fmt::Debug;
use tonic::{Interceptor, Response};
use tonic::Response;
use super::error::default_server_error_handler;
@ -80,10 +80,9 @@ where
/// Instantiate the write service
pub fn make_server<M>(
server: Arc<Server<M>>,
interceptor: impl Into<Interceptor>,
) -> write_service_server::WriteServiceServer<impl write_service_server::WriteService>
where
M: ConnectionManager + Send + Sync + Debug + 'static,
{
write_service_server::WriteServiceServer::with_interceptor(WriteService { server }, interceptor)
write_service_server::WriteServiceServer::new(WriteService { server })
}

View File

@ -34,13 +34,9 @@ where
pub fn make_server<M>(
server: Arc<Server<M>>,
interceptor: impl Into<tonic::Interceptor>,
) -> write_service_server::WriteServiceServer<impl write_service_server::WriteService>
where
M: ConnectionManager + Send + Sync + Debug + 'static,
{
write_service_server::WriteServiceServer::with_interceptor(
PBWriteService { server },
interceptor,
)
write_service_server::WriteServiceServer::new(PBWriteService { server })
}

View File

@ -3,6 +3,8 @@ use std::sync::{
Arc,
};
use tonic::{Request, Status};
#[derive(Debug, Clone)]
pub enum ServingReadinessState {
Unavailable,
@ -57,6 +59,19 @@ impl ServingReadiness {
pub fn set(&self, state: ServingReadinessState) {
self.0.store(state.into(), Ordering::SeqCst)
}
/// Implements the gRPC interceptor that returns SERVICE_UNAVAILABLE gRPC status
/// if the service is not ready.
pub fn into_interceptor(
self,
) -> impl FnMut(Request<()>) -> Result<Request<()>, Status> + Clone {
move |req| match self.get() {
ServingReadinessState::Unavailable => {
Err(Status::unavailable("service not ready to serve"))
}
ServingReadinessState::Serving => Ok(req),
}
}
}
impl From<Arc<AtomicBool>> for ServingReadiness {

View File

@ -10,13 +10,12 @@ description = "(TR)acing and l(OGGING) configuration"
[dependencies]
logfmt = { path = "../logfmt" }
observability_deps = { path = "../observability_deps" }
opentelemetry-jaeger = { version = "0.12", features = ["tokio"] }
opentelemetry-otlp = "0.6"
opentelemetry-jaeger = { version = "0.14", features = ["tokio"] }
opentelemetry-otlp = "0.8"
thiserror = "1.0.23"
tracing-opentelemetry = { version = "0.12", default-features = false }
tracing-opentelemetry = { version = "0.14", default-features = false }
structopt = { version = "0.3.21", optional = true }
[dev-dependencies]
synchronized-writer = "1"
regex = "1"