diff --git a/.cargo/config.toml b/.cargo/config.toml index 68c0a13..2d2f4cb 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,3 +1,11 @@ +[alias] +vdev = "run --quiet --package vdev --" + +[env] +# Build with large pages so that Vector runs on systems with 64k pages or less (e.g. 4k) to support +# CentOS 7, 8, and a few other Linux distributions. +JEMALLOC_SYS_WITH_LG_PAGE = "16" + [target.'cfg(all())'] rustflags = [ "-Dclippy::print_stdout", @@ -5,6 +13,11 @@ rustflags = [ "-Dclippy::dbg_macro", ] +# We need to bring in `libstdc++` for things that build against C++ (librdkafka, etc) which comes along in the +# `cross` base image but _isn't_ in a path searched by the linker normally. Additionally, our custom Docker image that +# we base on the `cross` image moves `libstdc++` into this custom-looking directory to avoid some _other_ libraries +# included in the `cross` base image from having a higher precedence than some of the "self-contained" libraries that +# Rust will bundle/use for specific targets like MUSL. [target.x86_64-unknown-linux-musl] rustflags = "-Lnative=/lib/native-libs" @@ -13,3 +26,13 @@ rustflags = "-Lnative=/lib/native-libs" [target.armv7-unknown-linux-musleabihf] rustflags = "-Lnative=/lib/native-libs" + +[target.x86_64-unknown-linux-gnu] +rustflags = ["-C", "link-args=-rdynamic"] + +[target.aarch64-unknown-linux-gnu] +rustflags = ["-C", "link-args=-rdynamic"] + +[target.x86_64-pc-windows-msvc] +# https://github.com/dtolnay/inventory/issues/58 +rustflags = ["-C", "codegen-units=1"] diff --git a/.dockerignore b/.dockerignore index 4071c16..f8bae8f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,9 +1,12 @@ * -!packages -!extensions -!scripts +!benches +!lib +!proto !src !tests +!build.rs !Cargo.lock !Cargo.toml -!rust-toolchain +!rust-toolchain.toml +!scripts +!vdev diff --git a/.gitignore b/.gitignore index d187959..9f64bbb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target *.tmp .idea +.DS_Store diff --git a/.rustfmt.toml b/.rustfmt.toml index 7210df4..3d8af21 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -4,6 +4,6 @@ reorder_imports = true # Nightly only features # unstable_features = true -# imports_granularity = "Module" +# imports_granularity = "Crate" # group_imports = "StdExternalCrate" # indent_style = "Block" diff --git a/Cargo.lock b/Cargo.lock index ece9144..8c6dd99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -13,10 +13,25 @@ dependencies = [ ] [[package]] -name = "adler" -version = "1.0.2" +name = "RustyXML" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b5ace29ee3216de37c0546865ad08edef58b0f9e76838ed8959a84a990e58c5" + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "adler32" @@ -24,5902 +39,9831 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + [[package]] name = "aes" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe0133578c0986e1fe3dfcd4af1cc5b2dd6c3dbf534d69916ce16a2701d40ba" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cipher", "cpufeatures", ] [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.15", "once_cell", "version_check", ] [[package]] -name = "aho-corasick" -version = "0.7.18" +name = "ahash" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "memchr", + "cfg-if", + "getrandom 0.2.15", + "once_cell", + "version_check", + "zerocopy 0.7.35", ] [[package]] -name = "ansi_term" -version = "0.12.1" +name = "aho-corasick" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ - "winapi 0.3.9", + "memchr", ] [[package]] -name = "anyhow" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c794e162a5eff65c72ef524dfe393eb923c354e350bb78b9c7383df13f3bc142" - -[[package]] -name = "anymap" -version = "1.0.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1f8f5a6f3d50d89e3797d7593a50f96bb2aaa20ca0cc7be1fb673232c91d72" - -[[package]] -name = "arc-swap" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" - -[[package]] -name = "arrayvec" -version = "0.5.2" +name = "allocator-api2" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] -name = "arrayvec" -version = "0.7.2" +name = "amq-protocol" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "e3a41c091e49edfcc098b4f90d4d7706a8cf9158034e84ebfee7ff346092f67c" +dependencies = [ + "amq-protocol-tcp", + "amq-protocol-types", + "amq-protocol-uri", + "cookie-factory", + "nom", + "serde", +] [[package]] -name = "ascii-canvas" -version = "3.0.0" +name = "amq-protocol-tcp" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +checksum = "3ed7a4a662472f88823ed2fc81babb0b00562f2c54284e3e7bffc02b6df649bf" dependencies = [ - "term", + "amq-protocol-uri", + "tcp-stream", + "tracing 0.1.41", ] [[package]] -name = "async-graphql" -version = "4.0.6" +name = "amq-protocol-types" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ecd9edbd48b68e44f81b720d83e670d876dce440856feee6c892c8cd3f6798" +checksum = "bd6484fdc918c1b6e2ae8eda2914d19a5873e1975f93ad8d33d6a24d1d98df05" dependencies = [ - "async-graphql-derive", - "async-graphql-parser", - "async-graphql-value", - "async-stream", - "async-trait", - "bytes 1.2.1", - "fnv", - "futures-util", - "http", - "indexmap", - "mime", - "multer", - "num-traits", - "once_cell", - "pin-project-lite", - "regex", + "cookie-factory", + "nom", "serde", "serde_json", - "static_assertions", - "tempfile", - "thiserror", ] [[package]] -name = "async-graphql-derive" -version = "4.0.6" +name = "amq-protocol-uri" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8801127f6a7b3af410498d2f971ee6da8f12f9b0b784473da636ce04e5ac565" +checksum = "7f7f2da69e0e1182765bf33407cd8a843f20791b5af2b57a2645818c4776c56c" dependencies = [ - "Inflector", - "async-graphql-parser", - "darling 0.14.1", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", - "thiserror", + "amq-protocol-types", + "percent-encoding", + "url", ] [[package]] -name = "async-graphql-parser" -version = "4.0.6" +name = "android-tzdata" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4097e2e3e313a9220df25485046b7749f4b8d749aba8ed7e09e929d60a643e3" -dependencies = [ - "async-graphql-value", - "pest", - "serde", - "serde_json", -] +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" [[package]] -name = "async-graphql-value" -version = "4.0.6" +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbb3f5e2eb77fbe173b102e3a9321a5f93a491f9c5ef3850e1155ae83c49e88" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "bytes 1.2.1", - "indexmap", - "serde", - "serde_json", + "libc", ] [[package]] -name = "async-recursion" -version = "1.0.0" +name = "ansi_term" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cda8f4bcc10624c4e85bc66b3f452cca98cfa5ca002dc83a16aad2367641bea" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "winapi", ] [[package]] -name = "async-stream" -version = "0.3.3" +name = "anstream" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ - "async-stream-impl", - "futures-core", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] -name = "async-stream-impl" -version = "0.3.3" +name = "anstyle" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] -name = "async-trait" -version = "0.1.57" +name = "anstyle-parse" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ - "proc-macro2", - "quote", - "syn", + "utf8parse", ] [[package]] -name = "atomic-shim" -version = "0.2.0" +name = "anstyle-query" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cd4b51d303cf3501c301e8125df442128d3c6d7c69f71b27833d253de47e77" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "crossbeam-utils", + "windows-sys 0.59.0", ] [[package]] -name = "atty" -version = "0.2.14" +name = "anstyle-wincon" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.9", + "anstyle", + "once_cell", + "windows-sys 0.59.0", ] [[package]] -name = "autocfg" -version = "1.1.0" +name = "anyhow" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] -name = "avro-rs" -version = "0.13.0" +name = "apache-avro" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece550dd6710221de9bcdc1697424d8eee4fc4ca7e017479ea9d50c348465e37" +checksum = "ceb7c683b2f8f40970b70e39ff8be514c95b96fcb9c4af87e1ed2cb2e10801a0" dependencies = [ - "byteorder", - "digest 0.9.0", + "digest", "lazy_static", "libflate", - "num-bigint 0.2.6", - "rand 0.7.3", + "log", + "num-bigint", + "quad-rand", + "rand 0.8.5", + "regex-lite", "serde", "serde_json", - "strum", - "strum_macros", - "thiserror", + "strum 0.25.0", + "strum_macros 0.25.3", + "thiserror 1.0.69", "typed-builder", - "uuid 0.8.2", - "zerocopy", + "uuid", ] [[package]] -name = "aws-config" -version = "0.15.0" +name = "arbitrary" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8c0628604c0a0afcd417548f085fd52e4ad54cacbf96437db4f45a27a47636" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ - "aws-http", - "aws-sdk-sso", - "aws-sdk-sts", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes 1.2.1", - "hex", - "http", - "hyper", - "ring", - "tokio", - "tower", - "tracing 0.1.34", - "zeroize", + "derive_arbitrary", ] [[package]] -name = "aws-endpoint" -version = "0.15.0" +name = "arc-swap" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bae67aca7c551d061a06606ad445d717ee28ac08f70d0f2358096c70118bdfe" -dependencies = [ - "aws-smithy-http", - "aws-types", - "http", - "regex", - "tracing 0.1.34", -] +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] -name = "aws-http" -version = "0.15.0" +name = "arr_macro" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2145230145123a3308c09a9f8aac2e2213c5540dd0e3a77200c32b20575cbcb" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "http", - "lazy_static", - "percent-encoding", - "tracing 0.1.34", -] - -[[package]] -name = "aws-s3-upload-file" -version = "0.0.1" +checksum = "c49336e062fa2ae8aca17a2f99c34d9c1a5d30827e8aff1cb4c294f253afe992" dependencies = [ - "async-trait", - "aws-sdk-s3", - "base64", - "common", - "futures 0.3.21", - "futures-util", - "hex", - "md-5", - "serde", - "tokio", - "tokio-util", - "toml", - "tracing 0.1.34", - "typetag", - "url", - "vector", - "vector_core", + "arr_macro_impl", + "proc-macro-hack", + "proc-macro-nested", ] [[package]] -name = "aws-sdk-s3" -version = "0.15.0" +name = "arr_macro_impl" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07d057138e3e02a486890fba4abb737470e80bc8069cd596f0d318acc7f0aea" +checksum = "9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e" dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-sigv4", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-eventstream", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes 1.2.1", - "http", - "md-5", - "tokio-stream", - "tower", + "proc-macro-hack", + "quote", + "syn 1.0.109", ] [[package]] -name = "aws-sdk-sso" -version = "0.15.0" +name = "arrayvec" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3df9fc9d07b0d1dc897a5e9aee924fd8527ff3d8a15677ca4dbb14969aacf0" -dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes 1.2.1", - "http", - "tokio-stream", - "tower", -] +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] -name = "aws-sdk-sts" -version = "0.15.0" +name = "ascii-canvas" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479f057a876f04ae8594d6f6633572ce7946fda5f1ae420cdfde653d61841bbe" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-query", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes 1.2.1", - "http", - "tower", + "term", ] [[package]] -name = "aws-sig-auth" -version = "0.15.0" +name = "async-channel" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffea94eb16f7f14153d4ff086aa075e0725050ee89ac6c1538cc1b229c64b420" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ - "aws-sigv4", - "aws-smithy-eventstream", - "aws-smithy-http", - "aws-types", - "http", - "tracing 0.1.34", + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", ] [[package]] -name = "aws-sigv4" -version = "0.15.0" +name = "async-channel" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "543ad4870152e9850fcbbaec1e1c746c4905682053866848af99681227198cab" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ - "aws-smithy-eventstream", - "aws-smithy-http", - "bytes 1.2.1", - "form_urlencoded", - "hex", - "http", - "once_cell", - "percent-encoding", - "regex", - "ring", - "time", - "tracing 0.1.34", + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] -name = "aws-smithy-async" -version = "0.45.0" +name = "async-compression" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a05f0f76616a4495999f4132287b4a0ebbb4e733aedbae0e120294f336faf1" +checksum = "c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2" dependencies = [ - "futures-util", + "flate2", + "futures-core", + "memchr", "pin-project-lite", "tokio", - "tokio-stream", + "zstd", + "zstd-safe", ] [[package]] -name = "aws-smithy-client" -version = "0.45.0" +name = "async-executor" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7a1f41d103bc313190a2af4bb8ff67311ae2e673e3701202fe707fc9597da4c" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "bytes 1.2.1", - "fastrand", - "http", - "http-body", - "hyper", - "hyper-rustls 0.22.1", - "lazy_static", - "pin-project-lite", - "tokio", - "tower", - "tracing 0.1.34", + "async-task", + "concurrent-queue", + "fastrand 2.3.0", + "futures-lite 2.6.0", + "slab", ] [[package]] -name = "aws-smithy-eventstream" -version = "0.45.0" +name = "async-fs" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74c8018f2a7bac3714a63d380f12469349f15ae55bff02ae03e44d5e85c4e79" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ - "aws-smithy-types", - "bytes 1.2.1", - "crc32fast", + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", ] [[package]] -name = "aws-smithy-http" -version = "0.45.0" +name = "async-global-executor" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bf583ba80ee4ef0fbae4fd1bce07567a03411ac2f82f80d2cfb41ea263c172" +checksum = "13f937e26114b93193065fd44f507aa2e9169ad0cdabbb996920b1fe1ddea7ba" dependencies = [ - "aws-smithy-eventstream", - "aws-smithy-types", - "bytes 1.2.1", - "bytes-utils", - "futures-core", - "http", - "http-body", - "hyper", - "once_cell", - "percent-encoding", - "pin-project-lite", - "tracing 0.1.34", + "async-channel 2.3.1", + "async-executor", + "async-io 2.4.0", + "async-lock 3.4.0", + "blocking", + "futures-lite 2.6.0", ] [[package]] -name = "aws-smithy-http-tower" -version = "0.45.0" +name = "async-global-executor-trait" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8845020b3875bcaf61c4174430975a07dc9ca9653f1029fcbbf61d197cbe593" +checksum = "9af57045d58eeb1f7060e7025a1631cbc6399e0a1d10ad6735b3d0ea7f8346ce" dependencies = [ - "aws-smithy-http", - "bytes 1.2.1", - "http", - "http-body", - "pin-project-lite", - "tower", - "tracing 0.1.34", + "async-global-executor", + "async-trait", + "executor-trait", ] [[package]] -name = "aws-smithy-json" -version = "0.45.0" +name = "async-graphql" +version = "7.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "748702917f9c54f8300710cb7284152fdba6881741654880bfd5c11ecf230425" +checksum = "d3ee559e72d983e7e04001ba3bf32e6b71c1d670595780723727fd8a29d36e87" dependencies = [ - "aws-smithy-types", + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.22.1", + "bytes 1.10.1", + "chrono", + "fnv", + "futures-timer", + "futures-util", + "http 1.3.1", + "indexmap 2.2.6", + "mime", + "multer", + "num-traits", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions_next", + "thiserror 1.0.69", ] [[package]] -name = "aws-smithy-query" -version = "0.45.0" +name = "async-graphql-derive" +version = "7.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca90dfe7151841de25e9e0d1862605aec4fe63fbfdf81417d3dc4baef562350" +checksum = "29db05b624fb6352fc11bfe30c54ab1b16a1fe937d7c05a783f4e88ef1292b3b" dependencies = [ - "aws-smithy-types", - "urlencoding", + "Inflector", + "async-graphql-parser", + "darling 0.20.10", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "strum 0.26.3", + "syn 2.0.100", + "thiserror 1.0.69", ] [[package]] -name = "aws-smithy-types" -version = "0.45.0" +name = "async-graphql-parser" +version = "7.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b74dbb59d20bf29d62772c99dfb8b32377a101c0b03879138f34b3e9b15bdc" +checksum = "4904895044116aab098ca82c6cec831ec43ed99efd04db9b70a390419bc88c5b" dependencies = [ - "itoa 1.0.1", - "num-integer", - "ryu", - "time", + "async-graphql-value", + "pest", + "serde", + "serde_json", ] [[package]] -name = "aws-smithy-xml" -version = "0.45.0" +name = "async-graphql-value" +version = "7.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4bff2d07dd531709cd1e9153c15a859ca394c9d6b2bb8e91d16960ea1fc8ae6" +checksum = "d0cde74de18e3a00c5dd5cfa002ab6f532e1a06c2a79ee6671e2fc353b400b92" dependencies = [ - "xmlparser", + "bytes 1.10.1", + "indexmap 2.2.6", + "serde", + "serde_json", ] [[package]] -name = "aws-types" -version = "0.15.0" +name = "async-graphql-warp" +version = "7.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d31c4af87ae335c41a1ce7d6d699ef274551444e920e93afca3e008aee8f89" +checksum = "e662bc1abaf791b2b21b54f679bb2cd34ba456c6c27b908c3f2b18ec5ce30a8b" dependencies = [ - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-types", - "http", - "rustc_version", - "tracing 0.1.34", - "zeroize", + "async-graphql", + "futures-util", + "serde_json", + "warp", ] [[package]] -name = "axum" -version = "0.5.14" +name = "async-io" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c943a505c17b494638a38a9af129067f760c9c06794b9f57d499266909be8e72" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ - "async-trait", - "axum-core", - "bitflags", - "bytes 1.2.1", - "futures-util", - "http", - "http-body", - "hyper", - "itoa 1.0.1", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "serde", - "sync_wrapper", - "tokio", - "tower", - "tower-http", - "tower-layer", - "tower-service", + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.28", + "slab", + "socket2 0.4.10", + "waker-fn", ] [[package]] -name = "axum-core" -version = "0.2.8" +name = "async-io" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-trait", - "bytes 1.2.1", - "futures-util", - "http", - "http-body", - "mime", - "tower-layer", - "tower-service", + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.6.0", + "parking", + "polling 3.7.4", + "rustix 0.38.44", + "slab", + "tracing 0.1.41", + "windows-sys 0.59.0", ] [[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bit-set" -version = "0.5.2" +name = "async-lock" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "bit-vec", + "event-listener 2.5.3", ] [[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" +name = "async-lock" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.4.0", + "event-listener-strategy", + "pin-project-lite", +] [[package]] -name = "bitmask-enum" -version = "2.0.0" +name = "async-net" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76487de46597d345d040a1be49a6fb636b71d0abab4696b7f3492e0cd4639c73" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" dependencies = [ - "quote", - "syn", + "async-io 1.13.0", + "blocking", + "futures-lite 1.13.0", ] [[package]] -name = "block-buffer" -version = "0.7.3" +name = "async-process" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.44", + "windows-sys 0.48.0", ] [[package]] -name = "block-buffer" -version = "0.10.2" +name = "async-reactor-trait" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "7a6012d170ad00de56c9ee354aef2e358359deb1ec504254e0e5a3774771de0e" dependencies = [ - "generic-array 0.14.5", + "async-io 1.13.0", + "async-trait", + "futures-core", + "reactor-trait", ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "byte-tools", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "block-padding" -version = "0.3.2" +name = "async-signal" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "generic-array 0.14.5", + "async-io 2.4.0", + "async-lock 3.4.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.44", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", ] [[package]] -name = "bollard" -version = "0.12.0" +name = "async-stream" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d4b9e55620571c2200f4be87db2a9a69e2a107fc7d206a6accad58c3536cb" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ - "base64", - "bollard-stubs", - "bytes 1.2.1", - "chrono", - "dirs-next", + "async-stream-impl", "futures-core", - "futures-util", - "hex", - "http", - "hyper", - "hyper-rustls 0.23.0", - "hyperlocal", - "log", "pin-project-lite", - "rustls 0.20.4", - "rustls-native-certs 0.6.2", - "rustls-pemfile 0.3.0", - "serde", - "serde_derive", - "serde_json", - "serde_urlencoded", - "thiserror", - "tokio", - "tokio-util", - "url", - "webpki 0.22.0", - "webpki-roots", - "winapi 0.3.9", ] [[package]] -name = "bollard-stubs" -version = "1.42.0-rc.0" +name = "async-stream-impl" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4295240332c78d04291f3ac857a281d5534a8e036f3dfcdaa294b22c0d424427" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "chrono", - "serde", - "serde_with", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "bstr" -version = "0.2.17" +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ - "lazy_static", - "memchr", - "regex-automata", - "serde", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "bumpalo" -version = "3.12.0" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "byte-tools" -version = "0.3.1" +name = "autocfg" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] -name = "bytecheck" -version = "0.6.9" +name = "aws-config" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +checksum = "6a84fe2c5e9965fba0fbc2001db252f1d57527d82a905cca85127df227bca748" dependencies = [ - "bytecheck_derive", - "ptr_meta", + "aws-credential-types", + "aws-runtime", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "fastrand 2.3.0", + "http 1.3.1", + "time", + "tokio", + "tracing 0.1.41", + "url", ] [[package]] -name = "bytecheck_derive" -version = "0.6.9" +name = "aws-credential-types" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +checksum = "4471bef4c22a06d2c7a1b6492493d3fdf24a805323109d6874f9c94d5906ac14" dependencies = [ - "proc-macro2", - "quote", - "syn", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", ] [[package]] -name = "byteorder" -version = "1.4.3" +name = "aws-runtime" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "0aff45ffe35196e593ea3b9dd65b320e51e2dda95aff4390bc459e461d09c6ad" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "fastrand 2.3.0", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "tracing 0.1.41", + "uuid", +] [[package]] -name = "bytes" -version = "0.4.12" +name = "aws-sdk-cloudwatch" +version = "1.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +checksum = "92758dbe39e655dc970cac1a42e2522ac4e24bc7aba4c595017b3c6eadb386a9" dependencies = [ - "byteorder", - "iovec", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-compression", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "flate2", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "regex-lite", + "tracing 0.1.41", ] [[package]] -name = "bytes" -version = "1.2.1" +name = "aws-sdk-cloudwatchlogs" +version = "1.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "751f50d419b94d233ea62656353cb96690d21edc3065b565d34f9da0c6ac30f1" dependencies = [ - "serde", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "fastrand 2.3.0", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", ] [[package]] -name = "bytes-utils" -version = "0.1.3" +name = "aws-sdk-firehose" +version = "1.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9" +checksum = "3305e1f347b8fed269717673c3bbe6cf64cbada3eea697df8cbac77bf61cac8f" dependencies = [ - "bytes 1.2.1", - "either", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", ] [[package]] -name = "bytesize" -version = "1.1.0" +name = "aws-sdk-kinesis" +version = "1.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70" +checksum = "e627ae7148b3f0f2bd600089ff7729858b2ed8199a7fa003907ed82a433ca33a" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", +] [[package]] -name = "cbc" -version = "0.1.2" +name = "aws-sdk-s3" +version = "1.79.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +checksum = "a8f63ba8f5fca32061c7d62d866ef65470edde38d4c5f8a0ebb8ff40a0521e1c" dependencies = [ - "cipher", + "aws-credential-types", + "aws-runtime", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-checksums", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes 1.10.1", + "fastrand 2.3.0", + "hex", + "hmac", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "lru", + "once_cell", + "percent-encoding", + "regex-lite", + "sha2", + "tracing 0.1.41", + "url", ] [[package]] -name = "cc" -version = "1.0.73" +name = "aws-sdk-sns" +version = "1.63.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" - -[[package]] -name = "cfb-mode" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b258c89d55316f606923b53511d0d41c20c4a2d440e5e56dd7185267aa98bd0e" +checksum = "18f19087f7ce277f68f4fe7147acc50618190e12b80f2f3b5b5a915bea71465d" dependencies = [ - "cipher", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", ] [[package]] -name = "cfg-if" -version = "0.1.10" +name = "aws-sdk-sqs" +version = "1.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "194d4234d8042159069b905760af670eefaa80848db097399b50110ab4746d04" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.1", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", +] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "aws-sdk-sts" +version = "1.63.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "065c533fbe6f84962af33fcf02b0350b7c1f79285baab5924615d2be3b232855" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing 0.1.41", +] [[package]] -name = "chrono" -version = "0.4.19" -source = "git+https://github.com/vectordotdev/chrono.git?branch=no-default-time#b7abfc3fcd7ffc95ad340f584fbcbe0c2d61e1e9" +name = "aws-sigv4" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d03c3c05ff80d54ff860fe38c726f6f494c639ae975203a101335f223386db" dependencies = [ - "libc", - "num-integer", - "num-traits", - "serde", - "winapi 0.3.9", + "aws-credential-types", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.1", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.12", + "http 1.3.1", + "once_cell", + "percent-encoding", + "sha2", + "time", + "tracing 0.1.41", ] [[package]] -name = "chrono-tz" -version = "0.6.3" +name = "aws-smithy-async" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c39203181991a7dd4343b8005bd804e7a9a37afb8ac070e43771e8c820bbde" +checksum = "1e190749ea56f8c42bf15dd76c65e14f8f765233e6df9b0506d9d934ebef867c" dependencies = [ - "chrono", - "chrono-tz-build", - "phf", + "futures-util", + "pin-project-lite", + "tokio", ] [[package]] -name = "chrono-tz-build" -version = "0.0.3" +name = "aws-smithy-checksums" +version = "0.63.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f509c3a87b33437b05e2458750a0700e5bdd6956176773e6c7d6dd15a283a0c" +checksum = "b65d21e1ba6f2cdec92044f904356a19f5ad86961acf015741106cdfafd747c0" dependencies = [ - "parse-zoneinfo", - "phf", - "phf_codegen", + "aws-smithy-http 0.62.0", + "aws-smithy-types", + "bytes 1.10.1", + "crc32c", + "crc32fast", + "crc64fast-nvme", + "hex", + "http 0.2.12", + "http-body 0.4.6", + "md-5", + "pin-project-lite", + "sha1", + "sha2", + "tracing 0.1.41", ] [[package]] -name = "cidr-utils" -version = "0.5.7" +name = "aws-smithy-compression" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a0c49d94395dc29876e75966ca2176e6c7c2ab117ca99d06937faae6ca89c7b" +checksum = "c41172a5393f54e26d6b1bfbfce5d0abaa5c46870a1641c1c1899b527f8b6388" dependencies = [ - "debug-helper", - "num-bigint 0.4.3", - "num-traits", - "once_cell", - "regex", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.1", + "flate2", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "pin-project-lite", + "tracing 0.1.41", ] [[package]] -name = "cipher" -version = "0.4.3" +name = "aws-smithy-eventstream" +version = "0.60.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "7c45d3dddac16c5c59d553ece225a88870cf81b7b813c9cc17b78cf4685eac7a" dependencies = [ - "crypto-common", - "inout", + "aws-smithy-types", + "bytes 1.10.1", + "crc32fast", ] [[package]] -name = "clap" -version = "3.2.16" +name = "aws-smithy-http" +version = "0.60.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3dbbb6653e7c55cc8595ad3e1f7be8f32aba4eb7ff7f0fd1163d4f3d137c0a9" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" dependencies = [ - "bitflags", - "clap_derive", - "clap_lex", - "indexmap", + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.1", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", "once_cell", - "textwrap", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing 0.1.41", ] [[package]] -name = "clap_derive" -version = "3.2.15" +name = "aws-smithy-http" +version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba52acd3b0a5c33aeada5cdaa3267cdc7c594a98731d4268cdc1532f4264cb4" +checksum = "c5949124d11e538ca21142d1fba61ab0a2a2c1bc3ed323cdb3e4b878bfb83166" dependencies = [ - "heck 0.4.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.1", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing 0.1.41", ] [[package]] -name = "clap_lex" -version = "0.2.3" +name = "aws-smithy-http-client" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87eba3c8c7f42ef17f6c659fc7416d0f4758cd3e58861ee63c5fa4a4dde649e4" +checksum = "0497ef5d53065b7cd6a35e9c1654bd1fefeae5c52900d91d1b188b0af0f29324" dependencies = [ - "os_str_bytes", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "h2 0.4.8", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "pin-project-lite", + "tokio", + "tracing 0.1.41", ] [[package]] -name = "cmake" -version = "0.1.48" +name = "aws-smithy-json" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +checksum = "92144e45819cae7dc62af23eac5a038a58aa544432d2102609654376a900bd07" dependencies = [ - "cc", + "aws-smithy-types", ] [[package]] -name = "codecs" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "aws-smithy-query" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" dependencies = [ - "avro-rs", - "bytes 1.2.1", - "chrono", - "derivative", - "dyn-clone", - "lookup", - "memchr", - "prost", - "serde", - "serde_json", - "smallvec", - "tokio-util", - "tracing 0.1.34", - "value", - "vector_common", - "vector_config 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_config_macros 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_core", + "aws-smithy-types", + "urlencoding", ] [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "aws-smithy-runtime" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "f6328865e36c6fd970094ead6b05efd047d3a80ec5fc3be5e743910da9f2ebf8" dependencies = [ - "termcolor", - "unicode-width", + "aws-smithy-async", + "aws-smithy-http 0.62.0", + "aws-smithy-http-client", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.1", + "fastrand 2.3.0", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "http-body 1.0.1", + "once_cell", + "pin-project-lite", + "pin-utils", + "tokio", + "tracing 0.1.41", ] [[package]] -name = "colored" -version = "2.0.0" +name = "aws-smithy-runtime-api" +version = "1.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +checksum = "3da37cf5d57011cb1753456518ec76e31691f1f474b73934a284eb2a1c76510f" dependencies = [ - "atty", - "lazy_static", - "winapi 0.3.9", + "aws-smithy-async", + "aws-smithy-types", + "bytes 1.10.1", + "http 0.2.12", + "http 1.3.1", + "pin-project-lite", + "tokio", + "tracing 0.1.41", + "zeroize", ] [[package]] -name = "common" -version = "0.0.1" +name = "aws-smithy-types" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836155caafba616c0ff9b07944324785de2ab016141c3550bd1c07882f8cee8f" dependencies = [ - "chrono", + "base64-simd", + "bytes 1.10.1", + "bytes-utils", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "http-body 1.0.1", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", "serde", - "serde_json", - "tracing 0.1.34", - "vector_core", + "time", ] [[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.3" +name = "aws-smithy-xml" +version = "0.60.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" dependencies = [ - "core-foundation-sys", - "libc", + "xmlparser", ] [[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "cpufeatures" -version = "0.2.2" +name = "aws-types" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "3873f8deed8927ce8d04487630dc9ff73193bab64742a61d050e57a68dec4125" dependencies = [ - "libc", + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version", + "tracing 0.1.41", ] [[package]] -name = "crc" -version = "3.0.0" +name = "axum" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ - "crc-catalog", + "async-trait", + "axum-core 0.3.4", + "bitflags 1.3.2", + "bytes 1.10.1", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower 0.4.13", + "tower-layer", + "tower-service", ] [[package]] -name = "crc-catalog" -version = "2.1.0" +name = "axum" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0165d2900ae6778e36e80bbc4da3b5eefccee9ba939761f9c2882a5d9af3ff" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core 0.4.5", + "bytes 1.10.1", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.2", + "tower 0.5.2", + "tower-layer", + "tower-service", +] [[package]] -name = "crc32fast" -version = "1.3.2" +name = "axum-core" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ - "cfg-if 1.0.0", + "async-trait", + "bytes 1.10.1", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.8" +name = "axum-core" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ - "autocfg", - "cfg-if 1.0.0", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", + "async-trait", + "bytes 1.10.1", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.2", + "tower-layer", + "tower-service", ] [[package]] -name = "crossbeam-queue" -version = "0.3.6" +name = "azure_core" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" +checksum = "4ccd63c07d1fbfb3d4543d7ea800941bf5a30db1911b9b9e4db3b2c4210a434f" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", + "async-trait", + "base64 0.21.7", + "bytes 1.10.1", + "dyn-clone", + "futures 0.3.31", + "getrandom 0.2.15", + "http-types", + "log", + "paste", + "pin-project", + "quick-xml", + "rand 0.8.5", + "reqwest", + "rustc_version", + "serde", + "serde_json", + "time", + "url", + "uuid", ] [[package]] -name = "crossbeam-utils" -version = "0.8.11" +name = "azure_identity" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436" dependencies = [ - "cfg-if 1.0.0", - "once_cell", + "async-lock 3.4.0", + "async-trait", + "azure_core", + "futures 0.3.31", + "log", + "oauth2", + "pin-project", + "serde", + "serde_json", + "time", + "tz-rs", + "url", + "uuid", ] [[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.3" +name = "azure_storage" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "83ca0a07f89fd72a006da4713e93af3d6c44a693e61a1c3c2e7985de39c182e8" dependencies = [ - "generic-array 0.14.5", - "typenum", + "RustyXML", + "async-trait", + "azure_core", + "bytes 1.10.1", + "futures 0.3.31", + "hmac", + "log", + "serde", + "serde_derive", + "serde_json", + "sha2", + "time", + "url", + "uuid", ] [[package]] -name = "csv" -version = "1.1.6" +name = "azure_storage_blobs" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +checksum = "8096c04d370118323c42b2752aa1883e4880a56ef65239f317b359f263b6e194" dependencies = [ - "bstr", - "csv-core", - "itoa 0.4.8", - "ryu", + "RustyXML", + "azure_core", + "azure_storage", + "bytes 1.10.1", + "futures 0.3.31", + "log", "serde", + "serde_derive", + "serde_json", + "time", + "url", + "uuid", ] [[package]] -name = "csv-core" -version = "0.1.10" +name = "backoff" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "memchr", + "getrandom 0.2.15", + "instant", + "rand 0.8.5", ] [[package]] -name = "ct-logs" -version = "0.8.0" +name = "backon" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" +checksum = "d67782c3f868daa71d3533538e98a8e13713231969def7536e8039606fc46bf0" dependencies = [ - "sct 0.6.1", + "fastrand 2.3.0", + "futures-core", + "pin-project", + "tokio", ] [[package]] -name = "ctor" -version = "0.1.22" +name = "backtrace" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "quote", - "syn", + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] -name = "ctr" -version = "0.9.1" +name = "base16" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d14f329cfbaf5d0e06b5e87fff7e265d2673c5ea7d2c27691a2c107db1442a0" -dependencies = [ - "cipher", -] +checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" [[package]] -name = "darling" -version = "0.13.4" +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", + "outref", + "vsimd", ] [[package]] -name = "darling" -version = "0.14.1" +name = "bit-set" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ - "darling_core 0.14.1", - "darling_macro 0.14.1", + "bit-vec", ] [[package]] -name = "darling_core" -version = "0.13.4" +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bitmask-enum" +version = "2.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6cbbb8f56245b5a479b30a62cdc86d26e2f35c2b9f594bc4671654b03851380" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", "quote", - "strsim", - "syn", + "syn 2.0.100", ] [[package]] -name = "darling_core" -version = "0.14.1" +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", + "funty", + "radium", + "tap", + "wyz", ] [[package]] -name = "darling_macro" -version = "0.13.4" +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "darling_core 0.13.4", - "quote", - "syn", + "generic-array", ] [[package]] -name = "darling_macro" -version = "0.14.1" +name = "block-padding" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "darling_core 0.14.1", - "quote", - "syn", + "generic-array", ] [[package]] -name = "dashmap" -version = "4.0.2" +name = "blocking" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "cfg-if 1.0.0", - "num_cpus", + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite 2.6.0", + "piper", ] [[package]] -name = "dashmap" -version = "5.2.0" +name = "bloomy" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c" +checksum = "489d2af57852b78a86478273ac6a1ef912061b6af3a439694c49f309f6ea3bdd" dependencies = [ - "cfg-if 1.0.0", - "num_cpus", - "parking_lot 0.12.1", + "siphasher 0.3.11", ] [[package]] -name = "datadog-filter" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "bollard" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aed08d3adb6ebe0eff737115056652670ae290f177759aac19c30456135f94c" dependencies = [ - "datadog-search-syntax", - "dyn-clone", - "regex", + "base64 0.22.1", + "bollard-stubs", + "bytes 1.10.1", + "chrono", + "futures-core", + "futures-util", + "hex", + "home", + "http 1.3.1", + "http-body-util", + "hyper 1.6.0", + "hyper-named-pipe", + "hyper-rustls", + "hyper-util", + "hyperlocal-next", + "log", + "pin-project-lite", + "rustls 0.22.4", + "rustls-native-certs 0.7.3", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_derive", + "serde_json", + "serde_repr", + "serde_urlencoded", + "thiserror 1.0.69", + "tokio", + "tokio-util", + "tower-service", + "url", + "winapi", ] [[package]] -name = "datadog-grok" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "bollard-stubs" +version = "1.44.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709d9aa1c37abb89d40f19f5d0ad6f0d88cb1581264e571c9350fc5bb89cf1c5" dependencies = [ - "bytes 1.2.1", "chrono", - "chrono-tz", - "lalrpop", - "lalrpop-util", - "lookup", - "nom", - "once_cell", - "onig", - "ordered-float 3.0.0", - "peeking_take_while", - "regex", - "serde_json", - "thiserror", - "tracing 0.1.34", - "value", - "vector_common", - "vrl-compiler", + "serde", + "serde_repr", + "serde_with", ] [[package]] -name = "datadog-search-syntax" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "borsh" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b74d67a0fc0af8e9823b79fd1c43a0900e5a8f0e0f4cc9210796bf3a820126" +dependencies = [ + "borsh-derive", + "cfg_aliases 0.2.1", +] + +[[package]] +name = "borsh-derive" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d37ed1b2c9b78421218a0b4f6d8349132d6ec2cfeba1cfb0118b0a8e268df9e" dependencies = [ - "itertools", "once_cell", - "pest", - "pest_derive", - "regex", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "db-key" -version = "0.0.5" +name = "bstr" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72465f46d518f6015d9cf07f7f3013a95dd6b9c2747c3d65ae0cce43929d14f" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +dependencies = [ + "memchr", + "serde", +] [[package]] -name = "debug-helper" -version = "0.3.13" +name = "bumpalo" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] -name = "derivative" -version = "2.2.0" +name = "bytecheck" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "bytecheck_derive", + "ptr_meta", + "simdutf8", ] [[package]] -name = "derive_more" -version = "0.99.17" +name = "bytecheck_derive" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version", - "syn", + "syn 1.0.109", ] [[package]] -name = "diff" -version = "0.1.12" +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "digest" -version = "0.8.1" +name = "bytes" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" dependencies = [ - "generic-array 0.12.4", + "byteorder", + "iovec", ] [[package]] -name = "digest" -version = "0.9.0" +name = "bytes" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" dependencies = [ - "generic-array 0.14.5", + "serde", ] [[package]] -name = "digest" -version = "0.10.3" +name = "bytes-utils" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" dependencies = [ - "block-buffer 0.10.2", - "crypto-common", + "bytes 1.10.1", + "either", ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "bytesize" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] +checksum = "2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e" [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "cached" +version = "0.49.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "8e8e463fceca5674287f32d252fb1d94083758b8709c160efae66d263e5f4eba" dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", + "ahash 0.8.11", + "cached_proc_macro", + "cached_proc_macro_types", + "hashbrown 0.14.5", + "instant", + "once_cell", + "thiserror 1.0.69", ] [[package]] -name = "dns-lookup" -version = "1.0.8" +name = "cached_proc_macro" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" +checksum = "ad9f16c0d84de31a2ab7fdf5f7783c14631f7075cf464eb3bb43119f61c9cb2a" dependencies = [ - "cfg-if 1.0.0", - "libc", - "socket2", - "winapi 0.3.9", + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "doc-comment" -version = "0.3.3" +name = "cached_proc_macro_types" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" [[package]] -name = "dyn-clone" -version = "1.0.9" +name = "cassowary" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] -name = "either" -version = "1.6.1" +name = "castaway" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" +dependencies = [ + "rustversion", +] [[package]] -name = "ena" -version = "0.14.0" +name = "cbc" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "log", + "cipher", ] [[package]] -name = "encoding_rs" -version = "0.8.31" +name = "cc" +version = "1.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" dependencies = [ - "cfg-if 1.0.0", - "serde", + "jobserver", + "libc", + "shlex", ] [[package]] -name = "endian-type" -version = "0.1.2" +name = "cesu8" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] -name = "enrichment" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "cfb-mode" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "738b8d467867f80a71351933f70461f5b56f24d5c93e0cf216e59229c968d330" dependencies = [ - "arc-swap", - "chrono", - "dyn-clone", - "value", - "vector_common", - "vrl", + "cipher", ] [[package]] -name = "enumflags2" -version = "0.7.5" +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "enumflags2_derive", + "cfg-if", + "cipher", + "cpufeatures", ] [[package]] -name = "enumflags2_derive" -version = "0.7.4" +name = "chacha20poly1305" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "proc-macro2", - "quote", - "syn", + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", ] [[package]] -name = "env_logger" -version = "0.8.4" +name = "charset" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" dependencies = [ - "log", - "regex", + "base64 0.22.1", + "encoding_rs", ] [[package]] -name = "erased-serde" -version = "0.3.20" +name = "chrono" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad132dd8d0d0b546348d7d86cb3191aad14b34e5f979781fc005c80d4ac67ffd" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", "serde", + "wasm-bindgen", + "windows-link", ] [[package]] -name = "err-derive" -version = "0.3.1" +name = "chrono-tz" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e" +checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e" dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "rustversion", - "syn", - "synstructure", + "chrono", + "chrono-tz-build", + "phf", + "serde", ] [[package]] -name = "etcd-client" -version = "0.9.2" +name = "chrono-tz-build" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8664f6ea68aba5503d42dd1be786b0f1bd9b7972e7f40208c83ef74db91bf" +checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f" dependencies = [ - "http", - "prost", - "tokio", - "tokio-stream", - "tonic", - "tonic-build", - "tower", - "tower-service", + "parse-zoneinfo", + "phf", + "phf_codegen", ] [[package]] -name = "exitcode" -version = "1.1.2" +name = "cidr" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" +checksum = "6bdf600c45bd958cf2945c445264471cca8b6c8e67bc87b71affd6d7e5682621" [[package]] -name = "fake-simd" -version = "0.1.2" +name = "cidr" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "bd1b64030216239a2e7c364b13cd96a2097ebf0dfe5025f2dedee14a23f2ab60" [[package]] -name = "fastrand" -version = "1.7.0" +name = "cidr-utils" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "25c0a9fb70c2c2cc2a520aa259b1d1345650046a07df1b6da1d3cefcd327f43e" dependencies = [ - "instant", + "cidr 0.2.3", + "num-bigint", + "num-traits", ] [[package]] -name = "ffi-opaque" -version = "2.0.1" +name = "cipher" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec54ac60a7f2ee9a97cad9946f9bf629a3bc6a7ae59e68983dc9318f5a54b81a" - -[[package]] -name = "file-source" -version = "0.1.0" -source = "git+https://github.com/vectordotdev/vector?tag=v0.23.3#af8c9e1f2561b3d2b32903e03acab9dc1bf44be4" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "bstr", - "bytes 1.2.1", - "chrono", - "crc", - "dashmap 5.2.0", - "flate2", - "futures 0.3.21", - "glob", - "indexmap", - "libc", - "scan_fmt", - "serde", - "serde_json", - "tokio", - "tracing 0.1.34", - "winapi 0.3.9", + "crypto-common", + "inout", + "zeroize", ] [[package]] -name = "filename" -version = "0.0.1" +name = "clap" +version = "4.5.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ - "async-trait", - "file-source", - "metrics", - "serde", - "tokio", - "toml", - "tracing 0.1.34", - "typetag", - "vector", - "vector_config 0.1.0 (git+https://github.com/vectordotdev/vector?tag=v0.23.3)", - "vector_config_macros 0.1.0 (git+https://github.com/vectordotdev/vector?tag=v0.23.3)", - "vector_core", + "clap_builder", + "clap_derive", ] [[package]] -name = "filetime" -version = "0.2.16" +name = "clap-verbosity-flag" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "34c77f67047557f62582784fd7482884697731b2932c7d37ced54bce2312e1e2" dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall", - "winapi 0.3.9", + "clap", + "log", ] [[package]] -name = "fixedbitset" -version = "0.4.1" +name = "clap_builder" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", + "terminal_size", +] [[package]] -name = "flate2" -version = "1.0.24" +name = "clap_complete" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "c06f5378ea264ad4f82bbc826628b5aad714a75abf6ece087e923010eb937fb6" dependencies = [ - "crc32fast", - "miniz_oxide", + "clap", ] [[package]] -name = "float_eq" -version = "1.0.0" +name = "clap_derive" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b59b6469c35ab601d6487d28879bccfbe8c896c33a3fe699c4d29817e552cc58" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.100", +] [[package]] -name = "fnv" -version = "1.0.7" +name = "clap_lex" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "clipboard-win" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ - "foreign-types-shared", + "error-code", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +name = "codecs" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "apache-avro", + "bytes 1.10.1", + "chrono", + "csv-core", + "derivative", + "dyn-clone", + "memchr", + "once_cell", + "ordered-float 4.6.0", + "prost 0.12.6", + "prost-reflect", + "regex", + "serde", + "serde_json", + "smallvec", + "snafu 0.7.5", + "syslog_loose", + "tokio-util", + "tracing 0.1.41", + "vector-common", + "vector-config", + "vector-config-common", + "vector-config-macros", + "vector-core", + "vector-lookup", + "vrl", +] [[package]] -name = "form_urlencoded" -version = "1.1.0" +name = "codespan-reporting" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "percent-encoding", + "termcolor", + "unicode-width 0.1.14", ] [[package]] -name = "fsevent" -version = "0.4.0" +name = "colorchoice" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" -dependencies = [ - "bitflags", - "fsevent-sys", -] +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] -name = "fsevent-sys" -version = "2.0.1" +name = "colored" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ - "libc", + "lazy_static", + "windows-sys 0.59.0", ] [[package]] -name = "fslock" -version = "0.2.1" +name = "combine" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "libc", - "winapi 0.3.9", + "bytes 1.10.1", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", ] [[package]] -name = "fuchsia-zircon" -version = "0.3.3" +name = "community-id" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +checksum = "9c9e701443040497976ce85ba641ef0c4a6b319307b9d93718fc76bb77540bff" dependencies = [ - "bitflags", - "fuchsia-zircon-sys", + "anyhow", + "base64 0.21.7", + "hex", + "lazy_static", + "num_enum 0.6.1", + "sha1", ] [[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" +name = "compact_str" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "ryu", + "static_assertions", +] [[package]] -name = "futures" -version = "0.1.31" +name = "concurrent-queue" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] [[package]] -name = "futures" -version = "0.3.21" +name = "confy" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "45b1f4c00870f07dc34adcac82bb6a72cc5aabca8536ba1797e01df51d2ce9a0" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", + "directories", + "serde", + "thiserror 1.0.69", + "toml", ] [[package]] -name = "futures-channel" -version = "0.3.21" +name = "console" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ - "futures-core", - "futures-sink", + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] -name = "futures-core" -version = "0.3.21" +name = "const_fn" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "2f8a2ca5ac02d09563609681103aada9e1777d54fc57a5acd7a41404f9c93b6e" [[package]] -name = "futures-executor" -version = "0.3.21" +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" dependencies = [ - "futures-core", - "futures-task", - "futures-util", + "unicode-segmentation", ] [[package]] -name = "futures-io" -version = "0.3.21" +name = "cookie-factory" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" [[package]] -name = "futures-macro" -version = "0.3.21" +name = "core-foundation" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "core-foundation-sys", + "libc", ] [[package]] -name = "futures-sink" -version = "0.3.21" +name = "core-foundation" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] [[package]] -name = "futures-task" -version = "0.3.21" +name = "core-foundation-sys" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "futures-util" -version = "0.3.21" +name = "core2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" dependencies = [ - "futures 0.1.31", - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", "memchr", - "pin-project-lite", - "pin-utils", - "slab", - "tokio-io", ] [[package]] -name = "gcp-cloud-storage-upload-file" -version = "0.0.1" +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ - "async-trait", - "base64", - "chrono", - "common", - "futures 0.3.21", - "futures-util", - "goauth", - "hex", - "http", - "hyper", - "md-5", - "serde", - "tokio", - "tokio-util", - "toml", - "tracing 0.1.34", - "typetag", - "vector", - "vector_core", + "libc", ] [[package]] -name = "generic-array" -version = "0.12.4" +name = "crc" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ - "typenum", + "crc-catalog", ] [[package]] -name = "generic-array" -version = "0.14.5" +name = "crc-catalog" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" -dependencies = [ - "typenum", - "version_check", -] +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "getrandom" -version = "0.1.16" +name = "crc32c" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "rustc_version", ] [[package]] -name = "getrandom" -version = "0.2.6" +name = "crc32fast" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "cfg-if", ] [[package]] -name = "ghost" -version = "0.1.4" +name = "crc64fast-nvme" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c813ffb63e8fd3df6f1ac3cc1ea392c7612ac2de4d0b44dcbfe03e5c4bf94a" +checksum = "4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3" dependencies = [ - "proc-macro2", - "quote", - "syn", + "crc", ] [[package]] -name = "glob" -version = "0.3.0" +name = "crossbeam-deque" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] [[package]] -name = "goauth" -version = "0.13.1" +name = "crossbeam-epoch" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8af59a261bcf42f45d1b261232847b9b850ba0a1419d6100698246fb66e9240" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "arc-swap", - "futures 0.3.21", - "log", - "reqwest", - "serde", - "serde_derive", - "serde_json", - "simpl", - "smpl_jwt", - "time", - "tokio", + "crossbeam-utils", ] [[package]] -name = "grok" -version = "2.0.0" +name = "crossbeam-queue" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273797968160270573071022613fc4aa28b91fe68f3eef6c96a1b2a1947ddfbd" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "glob", - "onig", + "crossbeam-utils", ] [[package]] -name = "h2" -version = "0.3.17" +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crossterm" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bytes 1.2.1", - "fnv", + "bitflags 2.9.0", + "crossterm_winapi", "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing 0.1.34", + "libc", + "mio 0.8.11", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", ] [[package]] -name = "hashbrown" -version = "0.11.2" +name = "crossterm_winapi" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ - "ahash", + "winapi", ] [[package]] -name = "hashbrown" -version = "0.12.0" +name = "crunchy" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" -dependencies = [ - "ahash", -] +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] -name = "headers" -version = "0.3.7" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "base64", - "bitflags", - "bytes 1.2.1", - "headers-core", - "http", - "httpdate", - "mime", - "sha-1 0.10.0", + "generic-array", + "rand_core 0.6.4", + "typenum", ] [[package]] -name = "headers-core" -version = "0.2.0" +name = "crypto_secretbox" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" dependencies = [ - "http", + "aead", + "cipher", + "generic-array", + "poly1305", + "salsa20", + "subtle", + "zeroize", ] [[package]] -name = "heck" -version = "0.3.3" +name = "csv" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" dependencies = [ - "unicode-segmentation", + "csv-core", + "itoa", + "ryu", + "serde", ] [[package]] -name = "heck" -version = "0.4.0" +name = "csv-core" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +dependencies = [ + "memchr", +] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "libc", + "cipher", ] [[package]] -name = "hex" -version = "0.4.3" +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] [[package]] -name = "hostname" -version = "0.3.1" +name = "darling" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "libc", - "match_cfg", - "winapi 0.3.9", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] -name = "http" -version = "0.2.8" +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "bytes 1.2.1", "fnv", - "itoa 1.0.1", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "http-body" -version = "0.4.5" +name = "darling_core" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "bytes 1.2.1", - "http", - "pin-project-lite", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.100", ] [[package]] -name = "http-range-header" -version = "0.3.0" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", +] [[package]] -name = "httparse" -version = "1.7.1" +name = "darling_macro" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.100", +] [[package]] -name = "httpdate" -version = "1.0.2" +name = "dary_heap" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" [[package]] -name = "hyper" -version = "0.14.20" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "bytes 1.2.1", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 1.0.1", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing 0.1.34", - "want", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] -name = "hyper-openssl" -version = "0.9.2" +name = "data-encoding" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" -dependencies = [ - "http", - "hyper", - "linked_hash_set", - "once_cell", - "openssl", - "openssl-sys", - "parking_lot 0.12.1", - "tokio", - "tokio-openssl", - "tower-layer", -] +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] -name = "hyper-proxy" -version = "0.9.1" +name = "deranged" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ - "bytes 1.2.1", - "futures 0.3.21", - "headers", - "http", - "hyper", - "openssl", - "tokio", - "tokio-openssl", - "tower-service", + "powerfmt", + "serde", ] [[package]] -name = "hyper-rustls" -version = "0.22.1" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "ct-logs", - "futures-util", - "hyper", - "log", - "rustls 0.19.1", - "rustls-native-certs 0.5.0", - "tokio", - "tokio-rustls 0.22.0", - "webpki 0.21.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "hyper-rustls" -version = "0.23.0" +name = "derive_arbitrary" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ - "http", - "hyper", - "log", - "rustls 0.20.4", - "rustls-native-certs 0.6.2", - "tokio", - "tokio-rustls 0.23.3", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "derive_more" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.100", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "bytes 1.2.1", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", + "block-buffer", + "crypto-common", + "subtle", ] [[package]] -name = "hyperlocal" -version = "0.8.0" +name = "directories" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "futures-util", - "hex", - "hyper", - "pin-project", - "tokio", + "dirs-sys", ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "dirs-next" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "cfg-if", + "dirs-sys-next", ] [[package]] -name = "indexmap" -version = "1.9.1" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ - "autocfg", - "hashbrown 0.12.0", - "serde", + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", ] [[package]] -name = "indoc" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" - -[[package]] -name = "inherent" -version = "1.0.2" +name = "dirs-sys-next" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb971b57a573f221e77621bea15a412033924a30beb9511fa2867572e41ea0e" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ - "proc-macro2", - "quote", - "syn", + "libc", + "redox_users", + "winapi", ] [[package]] -name = "inotify" -version = "0.7.1" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "bitflags", - "inotify-sys", - "libc", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "inotify-sys" -version = "0.1.5" +name = "dns-lookup" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc" dependencies = [ + "cfg-if", "libc", + "socket2 0.5.8", + "windows-sys 0.48.0", ] [[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +name = "dnsmsg-parser" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "block-padding 0.3.2", - "generic-array 0.14.5", + "data-encoding", + "hickory-proto", + "thiserror 1.0.69", ] [[package]] -name = "instant" -version = "0.1.12" +name = "doc-comment" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] -name = "inventory" -version = "0.1.11" +name = "dunce" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb5160c60ba1e809707918ee329adb99d222888155835c6feedba19f6c3fd4" -dependencies = [ - "ctor", - "ghost", - "inventory-impl", -] +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] -name = "inventory" -version = "0.2.3" +name = "dyn-clone" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84344c6e0b90a9e2b6f3f9abe5cc74402684e348df7b32adca28747e0cef091a" -dependencies = [ - "ctor", - "ghost", -] +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] -name = "inventory-impl" -version = "0.1.11" +name = "either" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e41b53715c6f0c4be49510bb82dee2c1e51c8586d885abe65396e82ed518548" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] -name = "iovec" -version = "0.1.4" +name = "ena" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" dependencies = [ - "libc", + "log", ] [[package]] -name = "ipnet" -version = "2.5.1" +name = "encode_unicode" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] -name = "itertools" -version = "0.10.3" +name = "encoding_rs" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "either", + "cfg-if", + "serde", ] [[package]] -name = "itoa" -version = "0.4.8" +name = "endian-type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +name = "enrichment" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "arc-swap", + "chrono", + "dyn-clone", + "vrl", +] [[package]] -name = "js-sys" -version = "0.3.60" +name = "enum-as-inner" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "wasm-bindgen", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "keccak" -version = "0.1.0" +name = "enum_dispatch" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.100", +] [[package]] -name = "kernel32-sys" -version = "0.2.2" +name = "enumflags2" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "enumflags2_derive", ] [[package]] -name = "lalrpop" -version = "0.19.8" +name = "enumflags2_derive" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30455341b0e18f276fa64540aff54deafb54c589de6aca68659c63dd2d5d823" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ - "ascii-canvas", - "atty", - "bit-set", - "diff", - "ena", - "itertools", - "lalrpop-util", - "petgraph", - "pico-args", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "lalrpop-util" -version = "0.19.8" +name = "env_home" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf796c978e9b4d983414f4caedc9273aa33ee214c5b887bd55fde84c85d2dc4" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" dependencies = [ + "log", "regex", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "equivalent" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] -name = "lazycell" -version = "1.3.0" +name = "erased-serde" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", +] [[package]] -name = "leveldb" -version = "0.8.6" +name = "errno" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32651baaaa5596b3a6e0bee625e73fd0334c167db0ea5ac68750ef9a629a2d6a" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ - "db-key", - "leveldb-sys", "libc", + "windows-sys 0.59.0", ] [[package]] -name = "leveldb-sys" -version = "2.0.9" +name = "error-chain" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd94a4d0242a437e5e41a27c782b69a624469ca1c4d1e5cb3c337f74a8031d4" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ - "cmake", - "ffi-opaque", - "libc", - "num_cpus", + "version_check", ] [[package]] -name = "libc" -version = "0.2.127" +name = "error-code" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b" +checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] -name = "libflate" -version = "1.2.0" +name = "etcd-client" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05605ab2bce11bcfc0e9c635ff29ef8b2ea83f29be257ee7d730cac3ee373093" +checksum = "fc0452bcc559431b16f472b7ab86e2f9ccd5f3c2da3795afbd6b773665e047fe" dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", + "http 1.3.1", + "prost 0.13.5", + "tokio", + "tokio-stream", + "tonic 0.12.3", + "tonic-build 0.12.3", + "tower 0.4.13", + "tower-service", ] [[package]] -name = "libflate_lz77" -version = "1.1.0" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a" -dependencies = [ - "rle-decode-fast", -] +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "libm" -version = "0.2.2" +name = "event-listener" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] [[package]] -name = "linked-hash-map" -version = "0.5.4" +name = "event-listener" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] [[package]] -name = "linked_hash_set" -version = "0.1.4" +name = "event-listener-strategy" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "linked-hash-map", + "event-listener 5.4.0", + "pin-project-lite", ] [[package]] -name = "lock_api" -version = "0.4.7" +name = "executor-trait" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "13c39dff9342e4e0e16ce96be751eb21a94e94a87bb2f6e63ad1961c2ce109bf" dependencies = [ - "autocfg", - "scopeguard", + "async-trait", ] [[package]] -name = "lockfree-object-pool" -version = "0.1.3" +name = "exitcode" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8166fbddef141acbea89cf3425ed97d4c22d14a68161977fc01c301175a4fb89" +checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" [[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +name = "fakedata" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "cfg-if 1.0.0", + "chrono", + "fakedata_generator", + "rand 0.8.5", ] [[package]] -name = "lookup" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "fakedata_generator" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8d9ae060f9cbca62d19ed21022bd3519b202d8e36ec8e51cacb82d77412e47" dependencies = [ - "inherent", - "lalrpop", - "lalrpop-util", - "once_cell", - "quickcheck", - "regex", + "passt", + "rand 0.8.5", "serde", - "snafu", + "serde_json", ] [[package]] -name = "lua-src" -version = "544.0.1" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708ba3c844d5e9d38def4a09dd871c17c370f519b3c4b7261fbabe4a613a814c" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ - "cc", + "instant", ] [[package]] -name = "luajit-src" -version = "210.4.0+resty124ff8d" +name = "fastrand" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76fb2e2c0c7192e18719d321c9a148f7625c4dcbe3df5f4c19e685e4c286f6c" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "file-source" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "cc", + "bstr", + "bytes 1.10.1", + "chrono", + "crc", + "dashmap", + "flate2", + "futures 0.3.31", + "glob", + "indexmap 2.2.6", + "libc", + "scan_fmt", + "serde", + "serde_json", + "sysinfo", + "tokio", + "tracing 0.1.41", + "vector-config", + "vector-config-common", + "vector-config-macros", + "winapi", ] [[package]] -name = "mach" -version = "0.3.2" +name = "filetime" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ + "cfg-if", "libc", + "libredox", + "windows-sys 0.59.0", ] [[package]] -name = "maplit" -version = "1.0.2" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "match_cfg" -version = "0.1.0" +name = "flagset" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" [[package]] -name = "matchers" -version = "0.1.0" +name = "flate2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ - "regex-automata", + "crc32fast", + "miniz_oxide", ] [[package]] -name = "matchit" -version = "0.5.0" +name = "float_eq" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" +checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" [[package]] -name = "md-5" -version = "0.10.1" +name = "flume" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ - "digest 0.10.3", + "futures-core", + "futures-sink", + "spin", ] [[package]] -name = "memchr" -version = "2.5.0" +name = "fnv" +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 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] -name = "memmap2" -version = "0.5.5" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "libc", + "foreign-types-shared", ] [[package]] -name = "memoffset" -version = "0.6.5" +name = "foreign-types-shared" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "autocfg", + "percent-encoding", ] [[package]] -name = "metrics" -version = "0.17.1" +name = "fsevent-sys" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55586aa936c35f34ba8aa5d97356d554311206e1ce1f9e68fe7b07288e5ad827" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" dependencies = [ - "ahash", - "metrics-macros", + "libc", ] [[package]] -name = "metrics-macros" -version = "0.4.1" +name = "fslock" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0daa0ab3a0ae956d0e2c1f42511422850e577d36a255357d1a7d08d45ee3a2f1" +checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb" dependencies = [ - "lazy_static", - "proc-macro2", - "quote", - "regex", - "syn", + "libc", + "winapi", ] [[package]] -name = "metrics-tracing-context" -version = "0.9.0" +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7927d28bccc322a3f48fc445bffe7cb491ab8a43ea28f7c5f75bc16fc4e5d6bd" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "itoa 0.4.8", - "lockfree-object-pool", - "metrics", - "metrics-util", - "once_cell", - "tracing 0.1.34", - "tracing-core 0.1.28", - "tracing-subscriber", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "metrics-util" -version = "0.10.2" +name = "futures-channel" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1174223789e331d9d47a4a953dac36e397db60fa8d2a111ac505388c6c7fe32e" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ - "ahash", - "aho-corasick", - "atomic-shim", - "crossbeam-epoch", - "crossbeam-utils", - "dashmap 4.0.2", - "hashbrown 0.11.2", - "indexmap", - "metrics", - "num_cpus", - "ordered-float 2.10.0", - "parking_lot 0.11.2", - "quanta", - "radix_trie", - "sketches-ddsketch", + "futures-core", + "futures-sink", ] [[package]] -name = "mime" -version = "0.3.16" +name = "futures-core" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "mime_guess" -version = "2.0.4" +name = "futures-executor" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ - "mime", - "unicase", + "futures-core", + "futures-task", + "futures-util", ] [[package]] -name = "minimal-lexical" -version = "0.2.1" +name = "futures-io" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] -name = "miniz_oxide" -version = "0.5.1" +name = "futures-lite" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "adler", + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", ] [[package]] -name = "mio" -version = "0.6.23" +name = "futures-lite" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", + "fastrand 2.3.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", ] [[package]] -name = "mio" -version = "0.8.2" +name = "futures-macro" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "libc", - "log", - "miow 0.3.7", - "ntapi", - "wasi 0.11.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "mio-extras" -version = "2.0.6" +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] -name = "miow" -version = "0.2.2" +name = "futures-task" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -name = "miow" -version = "0.3.7" +name = "futures-timer" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] -name = "mlua" -version = "0.8.3" +name = "futures-util" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10277581090f5cb7ecf814bc611152ce4db6dc8deffcaa08e24ed4c5197d9186" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "bstr", - "cc", - "lua-src", - "luajit-src", - "num-traits", - "once_cell", - "pkg-config", - "rustc-hash", + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", + "tokio-io", ] [[package]] -name = "multer" -version = "2.0.2" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8f35e687561d5c1667590911e6698a8cb714a134a7505718a182e7bc9d3836" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "bytes 1.2.1", - "encoding_rs", - "futures-util", - "http", - "httparse", - "log", - "memchr", - "mime", - "spin 0.9.3", + "typenum", "version_check", + "zeroize", ] [[package]] -name = "multimap" -version = "0.8.3" +name = "getrandom" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] [[package]] -name = "native-tls" -version = "0.2.11" +name = "getrandom" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "lazy_static", + "cfg-if", + "js-sys", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] -name = "net2" -version = "0.2.37" +name = "getrandom" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ - "cfg-if 0.1.10", + "cfg-if", "libc", - "winapi 0.3.9", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] -name = "new_debug_unreachable" -version = "1.0.4" +name = "gimli" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "nibble_vec" -version = "0.1.0" +name = "glob" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "goauth" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d351469a584f3b3565e2e740d4da60839bddc4320dadd7d61da8bdd77ffb373b" dependencies = [ - "smallvec", + "arc-swap", + "futures 0.3.31", + "log", + "reqwest", + "serde", + "serde_derive", + "serde_json", + "simpl", + "smpl_jwt", + "time", + "tokio", ] [[package]] -name = "nix" -version = "0.24.2" +name = "governor" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "libc", - "memoffset", + "cfg-if", + "dashmap", + "futures 0.3.31", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "rand 0.8.5", + "smallvec", + "spinning_top", ] [[package]] -name = "no-proxy" -version = "0.3.2" +name = "graphql-introspection-query" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b24b826bdb92c7a2c6f22ed4cf649001bd237f936587ee0b76cd9dea86003d01" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" dependencies = [ - "cidr-utils", "serde", ] [[package]] -name = "nom" -version = "7.1.1" +name = "graphql-parser" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "7a818c0d883d7c0801df27be910917750932be279c7bc82dc541b8769425f409" dependencies = [ - "memchr", - "minimal-lexical", + "combine", + "thiserror 1.0.69", ] [[package]] -name = "notify" -version = "4.0.17" +name = "graphql_client" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" dependencies = [ - "bitflags", - "filetime", - "fsevent", - "fsevent-sys", - "inotify", - "libc", - "mio 0.6.23", - "mio-extras", - "walkdir", - "winapi 0.3.9", + "graphql_query_derive", + "serde", + "serde_json", ] [[package]] -name = "ntapi" -version = "0.3.7" +name = "graphql_client_codegen" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" dependencies = [ - "winapi 0.3.9", + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", ] [[package]] -name = "num-bigint" -version = "0.2.6" +name = "graphql_query_derive" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", ] [[package]] -name = "num-bigint" -version = "0.4.3" +name = "grok" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "273797968160270573071022613fc4aa28b91fe68f3eef6c96a1b2a1947ddfbd" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "glob", + "onig", ] [[package]] -name = "num-integer" -version = "0.1.44" +name = "h2" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "autocfg", - "num-traits", + "bytes 1.10.1", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "h2" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ - "autocfg", - "libm", + "atomic-waker", + "bytes 1.10.1", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "num_cpus" -version = "1.13.1" +name = "hash_hasher" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] +checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c" [[package]] -name = "ofb" -version = "0.6.1" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc40678e045ff4eb1666ea6c0f994b133c31f673c09aed292261b6d5b6963a0" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "cipher", + "ahash 0.7.8", ] [[package]] -name = "once_cell" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" - -[[package]] -name = "onig" -version = "6.3.2" +name = "hashbrown" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eb3502504c9c8b06634b38bfdda86a9a8cef6277f3dec4d8b17c115110dd2a3" +checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "bitflags", - "lazy_static", - "libc", - "onig_sys", + "ahash 0.8.11", ] [[package]] -name = "onig_sys" -version = "69.8.0" +name = "hashbrown" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf3fbc9b931b6c9af85d219c7943c274a6ad26cff7488a2210215edd5f49bf8" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "cc", - "pkg-config", + "ahash 0.8.11", + "allocator-api2", ] [[package]] -name = "opaque-debug" -version = "0.2.3" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] -name = "openssl" -version = "0.10.48" +name = "headers" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", + "base64 0.21.7", + "bytes 1.10.1", + "headers-core", + "http 0.2.12", + "httpdate", + "mime", + "sha1", ] [[package]] -name = "openssl-macros" -version = "0.1.0" +name = "headers-core" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "proc-macro2", - "quote", - "syn", + "http 0.2.12", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "openssl-src" -version = "111.25.0+1.1.1t" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6" -dependencies = [ - "cc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] -name = "openssl-sys" -version = "0.9.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" +name = "heim" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "autocfg", - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", + "heim-common", + "heim-cpu", + "heim-disk", + "heim-host", + "heim-memory", + "heim-net", + "heim-runtime", ] [[package]] -name = "ordered-float" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +name = "heim-common" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "num-traits", + "cfg-if", + "core-foundation 0.9.4", + "futures-core", + "futures-util", + "lazy_static", + "libc", + "mach", + "nix 0.23.2", + "pin-utils", + "uom", + "winapi", ] [[package]] -name = "ordered-float" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bcbab4bfea7a59c2c0fe47211a1ac4e3e96bea6eb446d704f310bc5c732ae2" +name = "heim-cpu" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "num-traits", + "cfg-if", + "futures 0.3.31", + "glob", + "heim-common", + "heim-runtime", + "lazy_static", + "libc", + "mach", + "ntapi 0.3.7", + "smol", + "winapi", ] [[package]] -name = "os_str_bytes" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +name = "heim-disk" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.5", + "bitflags 1.3.2", + "cfg-if", + "core-foundation 0.9.4", + "heim-common", + "heim-runtime", + "libc", + "mach", + "widestring 0.4.3", + "winapi", ] [[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +name = "heim-host" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "lock_api", - "parking_lot_core 0.9.2", + "cfg-if", + "heim-common", + "heim-runtime", + "lazy_static", + "libc", + "log", + "mach", + "ntapi 0.3.7", + "platforms", + "winapi", ] [[package]] -name = "parking_lot_core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +name = "heim-memory" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "cfg-if 1.0.0", - "instant", + "cfg-if", + "heim-common", + "heim-runtime", + "lazy_static", "libc", - "redox_syscall", - "smallvec", - "winapi 0.3.9", + "mach", + "winapi", ] [[package]] -name = "parking_lot_core" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" +name = "heim-net" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "cfg-if 1.0.0", + "bitflags 1.3.2", + "cfg-if", + "heim-common", + "heim-runtime", "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.34.0", + "macaddr", + "nix 0.23.2", + "widestring 0.4.3", + "winapi", ] [[package]] -name = "parse-zoneinfo" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" +name = "heim-runtime" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "regex", + "futures 0.3.31", + "futures-timer", + "once_cell", + "smol", ] [[package]] -name = "paste" -version = "1.0.8" +name = "hermit-abi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] -name = "peeking_take_while" -version = "1.0.0" +name = "hermit-abi" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9ed2178b0575fff8e1b83b58ba6f75e727aafac2e1b6c795169ad3b17eb518" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] -name = "percent-encoding" -version = "2.2.0" +name = "hermit-abi" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" [[package]] -name = "pest" -version = "2.1.3" +name = "hex" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" -dependencies = [ - "ucd-trie", -] +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "pest_derive" -version = "2.1.0" +name = "hickory-proto" +version = "0.24.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" dependencies = [ - "pest", - "pest_generator", + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.8.5", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing 0.1.41", + "url", ] [[package]] -name = "pest_generator" -version = "2.1.3" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", + "digest", ] [[package]] -name = "pest_meta" -version = "2.1.3" +name = "home" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "maplit", - "pest", - "sha-1 0.8.2", + "windows-sys 0.59.0", ] [[package]] -name = "petgraph" -version = "0.6.0" +name = "hostname" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ - "fixedbitset", - "indexmap", + "libc", + "match_cfg", + "winapi", ] [[package]] -name = "phf" -version = "0.11.0" +name = "http" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4724fa946c8d1e7cd881bd3dbee63ce32fc1e9e191e35786b3dc1320a3f68131" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "phf_shared 0.11.0", + "bytes 1.10.1", + "fnv", + "itoa", ] [[package]] -name = "phf_codegen" -version = "0.11.0" +name = "http" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ba0c43d7a1b6492b2924a62290cfd83987828af037b0743b38e6ab092aee58" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ - "phf_generator", - "phf_shared 0.11.0", + "bytes 1.10.1", + "fnv", + "itoa", ] [[package]] -name = "phf_generator" -version = "0.11.0" +name = "http-body" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b450720b6f75cfbfabc195814bd3765f337a4f9a83186f8537297cac12f6705" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "phf_shared 0.11.0", - "rand 0.8.5", + "bytes 1.10.1", + "http 0.2.12", + "pin-project-lite", ] [[package]] -name = "phf_shared" -version = "0.10.0" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "siphasher", + "bytes 1.10.1", + "http 1.3.1", ] [[package]] -name = "phf_shared" -version = "0.11.0" +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd5609d4b2df87167f908a32e1b146ce309c16cf35df76bc11f440b756048e4" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "siphasher", - "uncased", + "bytes 1.10.1", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "pin-project-lite", ] [[package]] -name = "pico-args" -version = "0.4.2" +name = "http-range-header" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] -name = "pin-project" -version = "1.0.11" +name = "http-serde" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee" dependencies = [ - "pin-project-internal", + "http 0.2.12", + "serde", ] [[package]] -name = "pin-project-internal" -version = "1.0.11" +name = "http-types" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" dependencies = [ - "proc-macro2", - "quote", - "syn", + "anyhow", + "async-channel 1.9.0", + "base64 0.13.1", + "futures-lite 1.13.0", + "infer 0.2.3", + "pin-project-lite", + "rand 0.7.3", + "serde", + "serde_json", + "serde_qs", + "serde_urlencoded", + "url", ] [[package]] -name = "pin-project-lite" -version = "0.2.9" +name = "httparse" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] -name = "pin-utils" -version = "0.1.0" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] -name = "pkg-config" -version = "0.3.25" +name = "hyper" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" - -[[package]] -name = "portpicker" -version = "1.0.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ - "rand 0.8.5", + "bytes 1.10.1", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.8", + "tokio", + "tower-service", + "tracing 0.1.41", + "want", ] [[package]] -name = "ppv-lite86" -version = "0.2.16" +name = "hyper" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes 1.10.1", + "futures-channel", + "futures-util", + "h2 0.4.8", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] [[package]] -name = "precomputed-hash" -version = "0.1.1" +name = "hyper-named-pipe" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" +dependencies = [ + "hex", + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", + "winapi", +] [[package]] -name = "prettyplease" -version = "0.1.10" +name = "hyper-openssl" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e07e3a46d0771a8a06b5f4441527802830b43e679ba12f44960f48dd4c6803" +checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ - "proc-macro2", - "syn", + "http 0.2.12", + "hyper 0.14.32", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot", + "tokio", + "tokio-openssl", + "tower-layer", ] [[package]] -name = "proc-macro-crate" -version = "1.1.3" +name = "hyper-proxy" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" dependencies = [ - "thiserror", - "toml", + "bytes 1.10.1", + "futures 0.3.31", + "headers", + "http 0.2.12", + "hyper 0.14.32", + "openssl", + "tokio", + "tokio-openssl", + "tower-service", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "hyper-rustls" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "futures-util", + "http 1.3.1", + "hyper 1.6.0", + "hyper-util", + "log", + "rustls 0.22.4", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "hyper 0.14.32", + "pin-project-lite", + "tokio", + "tokio-io-timeout", ] [[package]] -name = "proc-macro2" -version = "1.0.43" +name = "hyper-timeout" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "unicode-ident", + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] -name = "prost" -version = "0.10.4" +name = "hyper-tls" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.2.1", - "prost-derive", + "bytes 1.10.1", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", ] [[package]] -name = "prost-build" -version = "0.10.4" +name = "hyper-util" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.2.1", - "cfg-if 1.0.0", - "cmake", - "heck 0.4.0", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost", - "prost-types", - "regex", - "tempfile", - "which", + "bytes 1.10.1", + "futures-channel", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", + "pin-project-lite", + "socket2 0.5.8", + "tokio", + "tower-service", + "tracing 0.1.41", ] [[package]] -name = "prost-derive" -version = "0.10.1" +name = "hyperlocal-next" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc" dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", + "hex", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] -name = "prost-types" -version = "0.10.1" +name = "iana-time-zone" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ - "bytes 1.2.1", - "prost", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", ] [[package]] -name = "ptr_meta" -version = "0.1.4" +name = "iana-time-zone-haiku" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "ptr_meta_derive", + "cc", ] [[package]] -name = "ptr_meta_derive" -version = "0.1.4" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ - "proc-macro2", - "quote", - "syn", + "displaydoc", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "quanta" -version = "0.9.3" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ - "crossbeam-utils", - "libc", - "mach", - "once_cell", - "raw-cpuid", - "wasi 0.10.2+wasi-snapshot-preview1", - "web-sys", - "winapi 0.3.9", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "quickcheck" -version = "1.0.3" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" dependencies = [ - "env_logger", - "log", - "rand 0.8.5", + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "quote" -version = "1.0.21" +name = "icu_locid_transform_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" -dependencies = [ - "proc-macro2", -] +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] -name = "radix_trie" -version = "0.2.1" +name = "icu_normalizer" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ - "endian-type", - "nibble_vec", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", ] [[package]] -name = "rand" -version = "0.7.3" +name = "icu_normalizer_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] -name = "rand" -version = "0.8.5" +name = "icu_properties" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.3", + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "icu_properties_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "icu_provider" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "ppv-lite86", - "rand_core 0.6.3", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "icu_provider_macros" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "getrandom 0.1.16", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "rand_core" -version = "0.6.3" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom 0.2.6", -] +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "rand_distr" -version = "0.4.3" +name = "idna" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "num-traits", - "rand 0.8.5", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "rand_core 0.5.1", + "icu_normalizer", + "icu_properties", ] [[package]] -name = "raw-cpuid" -version = "10.3.0" +name = "indexmap" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738bc47119e3eeccc7e94c4a506901aea5e7b4944ecd0829cbebf4af04ceda12" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "bitflags", + "autocfg", + "hashbrown 0.12.3", + "serde", ] [[package]] -name = "redox_syscall" -version = "0.2.13" +name = "indexmap" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ - "bitflags", + "equivalent", + "hashbrown 0.14.5", + "serde", ] [[package]] -name = "redox_users" -version = "0.4.3" +name = "indicatif" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "getrandom 0.2.6", - "redox_syscall", - "thiserror", + "console", + "number_prefix", + "portable-atomic", + "unicode-segmentation", + "unicode-width 0.2.0", + "web-time", ] [[package]] -name = "regex" -version = "1.6.0" +name = "indoc" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] -name = "regex-automata" -version = "0.1.10" +name = "infer" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] +checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" [[package]] -name = "regex-syntax" -version = "0.6.27" +name = "infer" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "inotify" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" dependencies = [ - "winapi 0.3.9", + "bitflags 1.3.2", + "inotify-sys", + "libc", ] [[package]] -name = "rend" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" dependencies = [ - "bytecheck", + "libc", ] [[package]] -name = "reqwest" -version = "0.11.13" +name = "inout" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ - "base64", - "bytes 1.2.1", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", + "block-padding", + "generic-array", ] [[package]] -name = "ring" -version = "0.16.20" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted", - "web-sys", - "winapi 0.3.9", + "cfg-if", ] [[package]] -name = "rkyv" -version = "0.7.39" +name = "inventory" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83" dependencies = [ - "bytecheck", - "hashbrown 0.12.0", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", + "rustversion", ] [[package]] -name = "rkyv_derive" -version = "0.7.39" +name = "io-lifetimes" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", ] [[package]] -name = "rle-decode-fast" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" - -[[package]] -name = "roxmltree" -version = "0.14.1" +name = "iovec" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" dependencies = [ - "xmlparser", + "libc", ] [[package]] -name = "rust_decimal" -version = "1.26.1" +name = "ipnet" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee9164faf726e4f3ece4978b25ca877ddc6802fa77f38cdccb32c7f805ecd70c" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" dependencies = [ - "arrayvec 0.7.2", - "num-traits", "serde", ] [[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" +name = "ipnetwork" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" dependencies = [ - "semver", + "serde", ] [[package]] -name = "rustls" -version = "0.19.1" +name = "is-terminal" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "base64", - "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", + "hermit-abi 0.5.0", + "libc", + "windows-sys 0.59.0", ] [[package]] -name = "rustls" -version = "0.20.4" +name = "is_ci" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" -dependencies = [ - "log", - "ring", - "sct 0.7.0", - "webpki 0.22.0", -] +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" [[package]] -name = "rustls-native-certs" -version = "0.5.0" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" -dependencies = [ - "openssl-probe", - "rustls 0.19.1", - "schannel", - "security-framework", -] +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] -name = "rustls-native-certs" -version = "0.6.2" +name = "itertools" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.0", - "schannel", - "security-framework", + "either", ] [[package]] -name = "rustls-pemfile" -version = "0.2.1" +name = "itertools" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ - "base64", + "either", ] [[package]] -name = "rustls-pemfile" -version = "0.3.0" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ - "base64", + "either", ] [[package]] -name = "rustls-pemfile" -version = "1.0.0" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "base64", + "either", ] [[package]] -name = "rustversion" -version = "1.0.6" +name = "itoa" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] -name = "ryu" -version = "1.0.9" +name = "jni" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] [[package]] -name = "same-file" -version = "1.0.6" +name = "jni-sys" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] -name = "scan_fmt" -version = "0.2.6" +name = "jobserver" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b53b0a5db882a8e2fdaae0a43f7b39e7e9082389e978398bdf223a55b581248" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "regex", + "libc", ] [[package]] -name = "schannel" -version = "0.1.20" +name = "js-sys" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "once_cell", + "wasm-bindgen", ] [[package]] -name = "schemars" -version = "0.8.10" +name = "json-patch" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" +checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" dependencies = [ - "dyn-clone", - "indexmap", - "schemars_derive", "serde", "serde_json", + "thiserror 1.0.69", ] [[package]] -name = "schemars_derive" -version = "0.8.10" +name = "jsonpath_lib" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" +checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn", + "log", + "serde", + "serde_json", ] [[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "sct" -version = "0.6.1" +name = "k8s-openapi" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "cd990069640f9db34b3b0f7a1afc62a05ffaa3be9b66aa3c313f58346df7f788" dependencies = [ - "ring", - "untrusted", + "base64 0.21.7", + "bytes 1.10.1", + "chrono", + "http 0.2.12", + "percent-encoding", + "serde", + "serde-value", + "serde_json", + "url", ] [[package]] -name = "sct" -version = "0.7.0" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "ring", - "untrusted", + "cpufeatures", ] [[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - -[[package]] -name = "security-framework" -version = "2.6.1" +name = "kqueue" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", + "kqueue-sys", "libc", - "security-framework-sys", ] [[package]] -name = "security-framework-sys" -version = "2.6.1" +name = "kqueue-sys" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ - "core-foundation-sys", + "bitflags 1.3.2", "libc", ] [[package]] -name = "semver" -version = "1.0.13" +name = "kube" +version = "0.82.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" +checksum = "dc7d3d52dd5c871991679102e80dfb192faaaa09fecdbccdd8c55af264ce7a8f" +dependencies = [ + "k8s-openapi", + "kube-client", + "kube-core", + "kube-runtime", +] [[package]] -name = "serde" -version = "1.0.142" +name = "kube-client" +version = "0.82.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e590c437916fb6b221e1d00df6e3294f3fccd70ca7e92541c475d6ed6ef5fee2" +checksum = "544339f1665488243f79080441cacb09c997746fd763342303e66eebb9d3ba13" dependencies = [ - "serde_derive", + "base64 0.20.0", + "bytes 1.10.1", + "chrono", + "dirs-next", + "either", + "futures 0.3.31", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-openssl", + "hyper-timeout 0.4.1", + "jsonpath_lib", + "k8s-openapi", + "kube-core", + "openssl", + "pem", + "pin-project", + "secrecy", + "serde", + "serde_json", + "serde_yaml", + "thiserror 1.0.69", + "tokio", + "tokio-util", + "tower 0.4.13", + "tower-http", + "tracing 0.1.41", ] [[package]] -name = "serde-toml-merge" -version = "0.3.0" +name = "kube-core" +version = "0.82.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d842a22544da00889e963dd7d8a22abbe6393ff992a3a83dafcb0bad776c82a5" +checksum = "25983d07f414dfffba08c5951fe110f649113416b1d8e22f7c89c750eb2555a7" dependencies = [ - "toml", + "chrono", + "form_urlencoded", + "http 0.2.12", + "json-patch", + "k8s-openapi", + "once_cell", + "serde", + "serde_json", + "thiserror 1.0.69", ] [[package]] -name = "serde_derive" -version = "1.0.142" +name = "kube-runtime" +version = "0.82.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b5b8d809babe02f538c2cfec6f2c1ed10804c0e5a6a041a049a4f5588ccc2e" +checksum = "125331201e3073707ac79c294c89021faa76c84da3a566a3749a2a93d295c98a" dependencies = [ - "proc-macro2", - "quote", - "syn", + "ahash 0.8.11", + "async-trait", + "backoff", + "derivative", + "futures 0.3.31", + "json-patch", + "k8s-openapi", + "kube-client", + "parking_lot", + "pin-project", + "serde", + "serde_json", + "smallvec", + "thiserror 1.0.69", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "serde_derive_internals" -version = "0.26.0" +name = "lalrpop" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ - "proc-macro2", - "quote", - "syn", + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", ] [[package]] -name = "serde_json" -version = "1.0.83" +name = "lalrpop-util" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "itoa 1.0.1", - "ryu", - "serde", + "regex-automata 0.4.9", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "lapin" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "3551b363b2fcf985fa39c47114333fa12fbb6518f863d4fd9556d0e19f48c1c9" dependencies = [ - "form_urlencoded", - "itoa 1.0.1", - "ryu", + "amq-protocol", + "async-global-executor-trait", + "async-reactor-trait", + "async-trait", + "executor-trait", + "flume", + "futures-core", + "futures-io", + "parking_lot", + "pinky-swear", + "reactor-trait", "serde", + "tracing 0.1.41", + "waker-fn", ] [[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn", -] +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "libc" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" -dependencies = [ - "indexmap", - "ryu", - "serde", - "yaml-rust", -] +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] -name = "sha-1" -version = "0.8.2" +name = "libflate" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug", + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "libflate_lz77" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.3", + "core2", + "hashbrown 0.14.5", + "rle-decode-fast", ] [[package]] -name = "sha2" -version = "0.10.2" +name = "libm" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.3", -] +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] -name = "sha3" -version = "0.10.1" +name = "libredox" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "digest 0.10.3", - "keccak", + "bitflags 2.9.0", + "libc", + "redox_syscall", ] [[package]] -name = "sharded-slab" -version = "0.1.4" +name = "linked-hash-map" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] -name = "signal-hook-registry" -version = "1.4.0" +name = "linked_hash_set" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" dependencies = [ - "libc", + "linked-hash-map", ] [[package]] -name = "simpl" -version = "0.1.0" +name = "linux-raw-sys" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] -name = "siphasher" -version = "0.3.10" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] -name = "sketches-ddsketch" -version = "0.1.3" +name = "linux-raw-sys" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] -name = "slab" -version = "0.4.6" +name = "listenfd" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "b87bc54a4629b4294d0b3ef041b64c40c611097a677d9dc07b2c67739fe39dba" +dependencies = [ + "libc", + "uuid", + "winapi", +] [[package]] -name = "smallvec" -version = "1.9.0" +name = "litemap" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] -name = "smpl_jwt" -version = "0.7.1" +name = "lock_api" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b6ff8c21c74ce7744643a7cddbb02579a44f1f77e4316bff1ddb741aca8ac9" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ - "base64", - "log", - "openssl", - "serde", - "serde_derive", - "serde_json", - "simpl", - "time", + "autocfg", + "scopeguard", ] [[package]] -name = "snafu" -version = "0.7.1" +name = "lockfree-object-pool" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5177903bf45656592d9eb5c0e22f408fc023aae51dbe2088889b71633ba451f2" -dependencies = [ - "doc-comment", - "futures-core", - "pin-project", - "snafu-derive", -] +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] -name = "snafu-derive" -version = "0.7.1" +name = "log" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410b26ed97440d90ced3e2488c868d56a86e2064f5d7d6f417909b286afe25e5" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "loki-logproto" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "heck 0.4.0", - "proc-macro2", - "quote", - "syn", + "bytes 1.10.1", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "snap", ] [[package]] -name = "socket2" -version = "0.4.4" +name = "lru" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "libc", - "winapi 0.3.9", + "hashbrown 0.15.2", ] [[package]] -name = "spin" -version = "0.5.2" +name = "lua-src" +version = "547.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "1edaf29e3517b49b8b746701e5648ccb5785cde1c119062cbabbc5d5cd115e42" +dependencies = [ + "cc", +] [[package]] -name = "spin" -version = "0.9.3" +name = "luajit-src" +version = "210.5.12+a4f56a4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530c2b0d0bf8b69304b39fe2001993e267461948b890cd037d8ad4293fa1a0d" +checksum = "b3a8e7962a5368d5f264d045a5a255e90f9aa3fc1941ae15a8d2940d42cac671" +dependencies = [ + "cc", + "which", +] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "macaddr" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "baee0bbc17ce759db233beb01648088061bf678383130602a298e6998eedb2d8" [[package]] -name = "stream-cancel" -version = "0.8.1" +name = "mach" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" dependencies = [ - "futures-core", - "pin-project", - "tokio", + "libc", ] [[package]] -name = "string_cache" -version = "0.8.4" +name = "mach2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot 0.12.1", - "phf_shared 0.10.0", - "precomputed-hash", + "libc", ] [[package]] -name = "strip-ansi-escapes" -version = "0.1.1" +name = "malloc_buf" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ - "vte", + "libc", ] [[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.18.0" +name = "match_cfg" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] -name = "strum_macros" -version = "0.18.0" +name = "matchers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn", + "regex-automata 0.1.10", ] [[package]] -name = "syn" -version = "1.0.99" +name = "matchit" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] -name = "sync_wrapper" -version = "0.1.1" +name = "maxminddb" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" +checksum = "d6087e5d8ea14861bb7c7f573afbc7be3798d3ef0fae87ec4fd9a4de9a127c3c" +dependencies = [ + "ipnetwork", + "log", + "memchr", + "serde", +] [[package]] -name = "synstructure" -version = "0.12.6" +name = "md-5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "cfg-if", + "digest", ] [[package]] -name = "syslog_loose" -version = "0.17.0" +name = "memchr" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4eae4d024d7912b5bea75e54319445d0ffe7f423bb4b68a46129cdcebecaef" -dependencies = [ - "chrono", - "nom", -] +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "tempfile" -version = "3.3.0" +name = "memmap2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ - "cfg-if 1.0.0", - "fastrand", "libc", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", ] [[package]] -name = "term" -version = "0.7.0" +name = "memoffset" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "dirs-next", - "rustversion", - "winapi 0.3.9", + "autocfg", ] [[package]] -name = "termcolor" -version = "1.1.3" +name = "memoffset" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ - "winapi-util", + "autocfg", ] [[package]] -name = "textwrap" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" - -[[package]] -name = "thiserror" -version = "1.0.32" +name = "metrics" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "thiserror-impl", + "ahash 0.8.11", + "metrics-macros", + "portable-atomic", ] [[package]] -name = "thiserror-impl" -version = "1.0.32" +name = "metrics-macros" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.100", ] [[package]] -name = "thread_local" -version = "1.1.4" +name = "metrics-tracing-context" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8fec95d1490f2b7e2d49462f9d75aa4fed52cc21e0b40aefc5987c6f404d40a2" dependencies = [ + "itoa", + "lockfree-object-pool", + "metrics", + "metrics-util", "once_cell", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-subscriber", ] [[package]] -name = "time" -version = "0.3.17" +name = "metrics-util" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "4de2ed6e491ed114b40b732e4d1659a9d53992ebd87490c44a6ffe23739d973e" dependencies = [ - "serde", - "time-core", - "time-macros", + "aho-corasick", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.13.1", + "indexmap 1.9.3", + "metrics", + "num_cpus", + "ordered-float 3.9.2", + "quanta 0.11.1", + "radix_trie", + "sketches-ddsketch", ] [[package]] -name = "time-core" -version = "0.1.0" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "time-macros" -version = "0.2.6" +name = "mime_guess" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ - "time-core", + "mime", + "unicase", ] [[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] -name = "tinyvec" -version = "1.6.0" +name = "miniz_oxide" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ - "tinyvec_macros", + "adler2", ] [[package]] -name = "tinyvec_macros" -version = "0.1.0" +name = "mio" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] [[package]] -name = "tokio" -version = "1.20.4" +name = "mio" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb78f30e4b41e98ca4cce5acb51168a033839a7af9e42b380355808e14e98ee0" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "autocfg", - "bytes 1.2.1", "libc", - "memchr", - "mio 0.8.2", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "winapi 0.3.9", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] -name = "tokio-io" -version = "0.1.13" +name = "mlua" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +checksum = "d111deb18a9c9bd33e1541309f4742523bfab01d276bfa9a27519f6de9c11dc7" dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", + "bstr", + "mlua-sys", + "mlua_derive", + "num-traits", + "once_cell", + "rustc-hash", ] [[package]] -name = "tokio-io-timeout" -version = "1.2.0" +name = "mlua-sys" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +checksum = "1901c1a635a22fe9250ffcc4fcc937c16b47c2e9e71adba8784af8bca1f69594" dependencies = [ - "pin-project-lite", - "tokio", + "cc", + "cfg-if", + "lua-src", + "luajit-src", + "pkg-config", ] [[package]] -name = "tokio-macros" -version = "1.7.0" +name = "mlua_derive" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "09697a6cec88e7f58a02c7ab5c18c611c6907c8654613df9cc0192658a4fb859" dependencies = [ + "itertools 0.12.1", + "once_cell", + "proc-macro-error", "proc-macro2", "quote", - "syn", + "regex", + "syn 2.0.100", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "multer" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" dependencies = [ - "native-tls", - "tokio", + "bytes 1.10.1", + "encoding_rs", + "futures-util", + "http 1.3.1", + "httparse", + "memchr", + "mime", + "spin", + "version_check", ] [[package]] -name = "tokio-openssl" -version = "0.6.3" +name = "multimap" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "futures-util", + "libc", + "log", "openssl", + "openssl-probe", "openssl-sys", - "tokio", + "schannel", + "security-framework 2.11.1", + "security-framework-sys", + "tempfile", ] [[package]] -name = "tokio-rustls" -version = "0.22.0" +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nibble_vec" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "rustls 0.19.1", - "tokio", - "webpki 0.21.4", + "smallvec", ] [[package]] -name = "tokio-rustls" -version = "0.23.3" +name = "nix" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ - "rustls 0.20.4", - "tokio", - "webpki 0.22.0", + "bitflags 1.3.2", + "cc", + "cfg-if", + "libc", + "memoffset 0.6.5", ] [[package]] -name = "tokio-stream" -version = "0.1.9" +name = "nix" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", ] [[package]] -name = "tokio-util" -version = "0.7.1" -source = "git+https://github.com/vectordotdev/tokio?rev=3aa231cf6f33f74ca29077163879f0de9a207ad8#3aa231cf6f33f74ca29077163879f0de9a207ad8" +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bytes 1.2.1", - "futures-core", - "futures-sink", - "pin-project-lite", - "slab", - "tokio", - "tracing 0.1.34", + "bitflags 2.9.0", + "cfg-if", + "cfg_aliases 0.1.1", + "libc", ] [[package]] -name = "toml" -version = "0.5.9" +name = "no-proxy" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "9f79c902b31ceac6856e262af5dbaffef75390cf4647c9fef7b55da69a4b912e" dependencies = [ + "cidr 0.3.1", "serde", ] [[package]] -name = "tonic" -version = "0.7.2" +name = "no-std-compat" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9d60db39854b30b835107500cf0aca0b0d14d6e1c3de124217c23a29c2ddb" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64", - "bytes 1.2.1", - "flate2", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "prost-derive", - "rustls-native-certs 0.6.2", - "rustls-pemfile 1.0.0", - "tokio", - "tokio-rustls 0.23.3", - "tokio-stream", - "tokio-util", - "tower", - "tower-layer", - "tower-service", - "tracing 0.1.34", - "tracing-futures 0.2.5", + "memchr", + "minimal-lexical", ] [[package]] -name = "tonic-build" -version = "0.7.2" +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "notify" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9263bf4c9bfaae7317c1c2faf7f18491d2fe476f70c414b73bf5d445b00ffa1" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "quote", - "syn", + "bitflags 2.9.0", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio 0.8.11", + "walkdir", + "windows-sys 0.48.0", ] [[package]] -name = "topsql" -version = "0.0.1" +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ - "async-recursion", - "async-trait", - "bytes 1.2.1", - "chrono", - "etcd-client", - "futures 0.3.21", - "futures-util", - "hex", - "http", - "hyper", - "ordered-float 3.0.0", - "prost", - "prost-build", - "prost-types", - "rand 0.8.5", - "serde", - "serde_json", - "snafu", - "tokio", - "tokio-openssl", - "tokio-stream", - "toml", - "tonic", - "tonic-build", - "tracing 0.1.34", - "tracing-futures 0.2.5", - "typetag", - "vector", - "vector_core", + "winapi", ] [[package]] -name = "tower" -version = "0.4.13" +name = "ntapi" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ - "futures-core", - "futures-util", - "indexmap", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing 0.1.34", + "winapi", ] [[package]] -name = "tower-http" -version = "0.3.3" +name = "nu-ansi-term" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d342c6d58709c0a6d48d48dabbb62d4ef955cf5f0f3bbfd845838e7ae88dbae" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "bitflags", - "bytes 1.2.1", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", + "overload", + "winapi", ] [[package]] -name = "tower-layer" -version = "0.3.1" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] [[package]] -name = "tower-service" -version = "0.3.1" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "tracing" -version = "0.1.34" +name = "num-format" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core 0.1.28", + "arrayvec", + "itoa", + "num-bigint", ] [[package]] -name = "tracing" -version = "0.2.0" -source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "cfg-if 1.0.0", - "pin-project-lite", - "tracing-core 0.2.0", + "num-traits", ] [[package]] -name = "tracing-attributes" -version = "0.1.21" +name = "num-rational" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "proc-macro2", - "quote", - "syn", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "tracing-core" -version = "0.1.28" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "once_cell", - "valuable", + "autocfg", + "libm", ] [[package]] -name = "tracing-core" -version = "0.2.0" -source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "lazy_static", + "hermit-abi 0.3.9", + "libc", ] [[package]] -name = "tracing-futures" -version = "0.2.5" +name = "num_enum" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" dependencies = [ - "futures 0.3.21", - "futures-task", - "pin-project", - "tracing 0.1.34", + "num_enum_derive 0.6.1", ] [[package]] -name = "tracing-futures" -version = "0.3.0" -source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "pin-project-lite", - "tracing 0.2.0", + "num_enum_derive 0.7.3", ] [[package]] -name = "tracing-limit" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "dashmap 5.2.0", - "tracing-core 0.1.28", - "tracing-subscriber", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "tracing-log" -version = "0.1.3" +name = "num_enum_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "lazy_static", - "log", - "tracing-core 0.1.28", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "tracing-serde" -version = "0.1.3" +name = "num_threads" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ - "serde", - "tracing-core 0.1.28", + "libc", ] [[package]] -name = "tracing-subscriber" -version = "0.3.15" +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "oauth2" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" +checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ - "ansi_term", - "matchers", - "once_cell", - "regex", + "base64 0.13.1", + "chrono", + "getrandom 0.2.15", + "http 0.2.12", + "rand 0.8.5", "serde", "serde_json", - "sharded-slab", - "thread_local", - "tracing 0.1.34", - "tracing-core 0.1.28", - "tracing-log", - "tracing-serde", + "serde_path_to_error", + "sha2", + "thiserror 1.0.69", + "url", ] [[package]] -name = "tracing-tower" -version = "0.1.0" -source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ - "futures 0.3.21", - "tower-service", - "tracing 0.2.0", - "tracing-futures 0.3.0", + "malloc_buf", ] [[package]] -name = "try-lock" -version = "0.2.3" +name = "object" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] [[package]] -name = "twox-hash" -version = "1.6.3" +name = "ofb" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +checksum = "2cc40678e045ff4eb1666ea6c0f994b133c31f673c09aed292261b6d5b6963a0" dependencies = [ - "cfg-if 0.1.10", - "static_assertions", + "cipher", ] [[package]] -name = "typed-builder" -version = "0.5.1" +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "onig" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cea224ddd4282dfc40d1edabbd0c020a12e946e3a48e2c2b8f6ff167ad29fe" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "bitflags 1.3.2", + "libc", + "once_cell", + "onig_sys", ] [[package]] -name = "typenum" -version = "1.15.0" +name = "onig_sys" +version = "69.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "opaque-debug" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] -name = "typetag" -version = "0.1.8" +name = "opendal" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4080564c5b2241b5bff53ab610082234e0c57b0417f4bd10596f183001505b8a" +checksum = "52c17c077f23fa2d2c25d9d22af98baa43b8bbe2ef0de80cf66339aa70401467" dependencies = [ - "erased-serde", - "inventory 0.2.3", + "anyhow", + "async-trait", + "backon", + "base64 0.21.7", + "bytes 1.10.1", + "chrono", + "flagset", + "futures 0.3.31", + "getrandom 0.2.15", + "http 0.2.12", + "log", + "md-5", "once_cell", + "percent-encoding", + "quick-xml", + "reqwest", "serde", - "typetag-impl", + "serde_json", + "tokio", + "uuid", ] [[package]] -name = "typetag-impl" -version = "0.1.8" +name = "openssl" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e60147782cc30833c05fba3bab1d9b5771b2685a2557672ac96fa5d154099c0e" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "proc-macro2", - "quote", - "syn", + "bitflags 2.9.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", ] [[package]] -name = "uaparser" -version = "0.6.0" +name = "openssl-macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d705ae455d32248d299de9af5316a79ce9dc502c0b533aaeaf5f1c2fc02cc5" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "derive_more", - "lazy_static", - "regex", - "serde", - "serde_derive", - "serde_yaml", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "ucd-trie" -version = "0.1.3" +name = "openssl-probe" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] -name = "uncased" -version = "0.9.6" +name = "openssl-src" +version = "300.4.2+3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0" +checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" dependencies = [ - "version_check", + "cc", ] [[package]] -name = "unicase" -version = "2.6.0" +name = "openssl-sys" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ - "version_check", + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", ] [[package]] -name = "unicode-bidi" -version = "0.3.8" +name = "opentelemetry-proto" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "bytes 1.10.1", + "chrono", + "hex", + "ordered-float 4.6.0", + "prost 0.12.6", + "prost-build 0.12.6", + "tonic 0.11.0", + "tonic-build 0.11.0", + "vector-core", + "vector-lookup", + "vrl", +] + +[[package]] +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "unicode-ident" -version = "1.0.0" +name = "ordered-float" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] [[package]] -name = "unicode-normalization" -version = "0.1.19" +name = "ordered-float" +version = "3.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" dependencies = [ - "tinyvec", + "num-traits", ] [[package]] -name = "unicode-segmentation" -version = "1.9.0" +name = "ordered-float" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] [[package]] -name = "unicode-width" -version = "0.1.9" +name = "os_info" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5" +dependencies = [ + "log", + "windows-sys 0.52.0", +] [[package]] -name = "unicode-xid" -version = "0.2.2" +name = "outref" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] -name = "untrusted" -version = "0.7.1" +name = "overload" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] -name = "url" -version = "2.3.1" +name = "owo-colors" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", + "supports-color 2.1.0", + "supports-color 3.0.2", ] [[package]] -name = "urlencoding" -version = "2.1.2" +name = "pad" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3" +dependencies = [ + "unicode-width 0.1.14", +] [[package]] -name = "utf8-width" -version = "0.1.6" +name = "parking" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] -name = "utf8parse" -version = "0.2.0" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] [[package]] -name = "uuid" -version = "0.8.2" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "getrandom 0.2.6", - "serde", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "uuid" -version = "1.1.2" +name = "parse-zoneinfo" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" dependencies = [ - "getrandom 0.2.6", - "serde", + "regex", ] [[package]] -name = "valuable" -version = "0.1.0" +name = "passt" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "13242a5ce97f39a8095d03c8b273e91d09f2690c0b7d69a2af844941115bab24" [[package]] -name = "value" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "peeking_take_while" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e9ed2178b0575fff8e1b83b58ba6f75e727aafac2e1b6c795169ad3b17eb518" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ - "async-graphql", - "bytes 1.2.1", - "chrono", - "lookup", - "mlua", - "ordered-float 3.0.0", - "regex", - "serde", - "serde_json", - "snafu", - "toml", - "tracing 0.1.34", + "base64 0.13.1", ] [[package]] -name = "vcpkg" -version = "0.2.15" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "vector" -version = "0.23.3" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "pest" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ - "async-stream", - "async-trait", - "atty", - "aws-config", - "aws-sdk-s3", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "aws-types", - "axum", - "base64", - "bollard", - "bytes 1.2.1", - "bytesize", - "chrono", - "cidr-utils", - "clap", - "codecs", - "colored", - "datadog-filter", - "datadog-search-syntax", - "derivative", - "dyn-clone", - "encoding_rs", - "enrichment", - "exitcode", - "flate2", - "futures 0.3.21", + "memchr", + "thiserror 2.0.12", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pest_meta" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.1", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pinky-swear" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cfae3ead413ca051a681152bd266438d3bfa301c9bdf836939a14c721bb2a21" +dependencies = [ + "doc-comment", + "flume", + "parking_lot", + "tracing 0.1.41", +] + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand 2.3.0", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "platforms" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.44", + "tracing 0.1.41", + "windows-sys 0.59.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portpicker" +version = "1.0.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "postgres-openssl" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb14e4bbc2c0b3d165bf30b79c7a9c10412dff9d98491ffdd64ed810ab891d21" +dependencies = [ + "openssl", + "tokio", + "tokio-openssl", + "tokio-postgres", +] + +[[package]] +name = "postgres-protocol" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" +dependencies = [ + "base64 0.22.1", + "byteorder", + "bytes 1.10.1", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.9.0", + "sha2", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" +dependencies = [ + "bytes 1.10.1", + "chrono", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.24", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettydiff" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff1fec61082821f8236cf6c0c14e8172b62ce8a72a0eedc30d3b247bb68dc11" +dependencies = [ + "ansi_term", + "pad", +] + +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn 2.0.100", +] + +[[package]] +name = "prettytable-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" +dependencies = [ + "encode_unicode", + "is-terminal", + "lazy_static", + "term", + "unicode-width 0.1.14", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.20", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro-nested" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus-parser" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "indexmap 2.2.6", + "nom", + "num_enum 0.7.3", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "snafu 0.7.5", + "vector-common", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes 1.10.1", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes 1.10.1", + "prost-derive 0.13.5", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes 1.10.1", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.100", + "tempfile", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost 0.13.5", + "prost-types 0.13.5", + "regex", + "syn 2.0.100", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "prost-reflect" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f" +dependencies = [ + "base64 0.22.1", + "once_cell", + "prost 0.12.6", + "prost-types 0.12.6", + "serde", + "serde-value", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost 0.13.5", +] + +[[package]] +name = "psl" +version = "2.1.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8cf97e71c0401f4efde4be61e968330d3694ed34475ed2f664be9b2a3e5430a" +dependencies = [ + "psl-types", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quad-rand" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651516ddc9168ebd67b24afd085a718be02f8858fe406591b013d101ce2f40" + +[[package]] +name = "quanta" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" +dependencies = [ + "crossbeam-utils", + "libc", + "mach2", + "once_cell", + "raw-cpuid 10.7.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quanta" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid 11.5.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quickcheck" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +dependencies = [ + "env_logger", + "log", + "rand 0.8.5", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "quoted_printable" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73" + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.24", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "ratatui" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" +dependencies = [ + "bitflags 2.9.0", + "cassowary", + "compact_str", + "crossterm", + "itertools 0.12.1", + "lru", + "paste", + "stability", + "strum 0.26.3", + "unicode-segmentation", + "unicode-truncate", + "unicode-width 0.1.14", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "raw-cpuid" +version = "11.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "reactor-trait" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "438a4293e4d097556730f4711998189416232f009c137389e0f961d2bc0ddc58" +dependencies = [ + "async-trait", + "futures-core", + "futures-io", +] + +[[package]] +name = "redis" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c580d9cbbe1d1b479e8d67cf9daf6a62c957e6846048408b80b43ac3f6af84cd" +dependencies = [ + "arc-swap", + "async-trait", + "bytes 1.10.1", + "combine", + "futures 0.3.31", + "futures-util", + "itoa", + "native-tls", + "percent-encoding", + "pin-project-lite", + "ryu", + "tokio", + "tokio-native-tls", + "tokio-retry", + "tokio-util", + "url", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes 1.10.1", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rkyv" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes 1.10.1", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rmpv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58450723cd9ee93273ce44a20b6ec4efe17f8ed2e3631474387bfdecf18bb2a9" +dependencies = [ + "num-traits", + "rmp", + "serde", + "serde_bytes", +] + +[[package]] +name = "roxmltree" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" + +[[package]] +name = "rumqttc" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1568e15fab2d546f940ed3a21f48bbbd1c494c90c99c4481339364a497f94a9" +dependencies = [ + "bytes 1.10.1", + "flume", + "futures-util", + "log", + "rustls-native-certs 0.7.3", + "rustls-pemfile 2.2.0", + "rustls-webpki 0.102.8", + "thiserror 1.0.69", + "tokio", + "tokio-rustls 0.25.0", +] + +[[package]] +name = "rust_decimal" +version = "1.37.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" +dependencies = [ + "arrayvec", + "borsh", + "bytes 1.10.1", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.3", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls" +version = "0.23.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki 0.103.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "rustyline" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "clipboard-win", + "libc", + "log", + "memchr", + "nix 0.28.0", + "unicode-segmentation", + "unicode-width 0.1.14", + "utf8parse", + "windows-sys 0.52.0", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scan_fmt" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b53b0a5db882a8e2fdaae0a43f7b39e7e9082389e978398bdf223a55b581248" +dependencies = [ + "regex", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "serde", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-toml-merge" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93b4e415d6bff989e5e48649ca9b8b4d4997cb069a0c90a84bfd38c7df5e3968" +dependencies = [ + "toml", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float 2.10.1", + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_qs" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" +dependencies = [ + "percent-encoding", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.2.6", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio 0.8.11", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "simpl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "sketches-ddsketch" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] + +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel 1.9.0", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "smpl_jwt" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff23fdd767425c13e6f354b7443b3cc0c23097ae077e2211ef8143fa68ad014" +dependencies = [ + "base64 0.21.7", + "log", + "openssl", + "serde", + "serde_derive", + "serde_json", + "simpl", + "time", +] + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "futures-core", + "pin-project", + "snafu-derive 0.7.5", +] + +[[package]] +name = "snafu" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" +dependencies = [ + "snafu-derive 0.8.5", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "snafu-derive" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stability" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" +dependencies = [ + "quote", + "syn 2.0.100", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "static_assertions_next" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7beae5182595e9a8b683fa98c4317f956c9a2dec3b9716990d20023cc60c766" + +[[package]] +name = "stream-cancel" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9fbf9bd71e4cf18d68a8a0951c0e5b7255920c0cd992c4ff51cddd6ef514a3" +dependencies = [ + "futures-core", + "pin-project", + "tokio", +] + +[[package]] +name = "string_cache" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.100", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.100", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "supports-color" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" +dependencies = [ + "is-terminal", + "is_ci", +] + +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "sysinfo" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi 0.4.1", + "rayon", + "windows", +] + +[[package]] +name = "syslog" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc7e95b5b795122fafe6519e27629b5ab4232c73ebb2428f568e82b1a457ad3" +dependencies = [ + "error-chain", + "hostname", + "libc", + "log", + "time", +] + +[[package]] +name = "syslog_loose" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161028c00842709450114c39db3b29f44c898055ed8833bb9b535aba7facf30e" +dependencies = [ + "chrono", + "nom", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tcp-stream" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495b0abdce3dc1f8fd27240651c9e68890c14e9d9c61527b1ce44d8a5a7bd3d5" +dependencies = [ + "cfg-if", + "native-tls", + "rustls-pemfile 2.2.0", +] + +[[package]] +name = "tempfile" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +dependencies = [ + "fastrand 2.3.0", + "getrandom 0.3.2", + "once_cell", + "rustix 1.0.3", + "windows-sys 0.59.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" +dependencies = [ + "rustix 1.0.3", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tikv-jemalloc-sys" +version = "0.5.4+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + +[[package]] +name = "time" +version = "0.3.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" +dependencies = [ + "deranged", + "itoa", + "js-sys", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" + +[[package]] +name = "time-macros" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +dependencies = [ + "backtrace", + "bytes 1.10.1", + "libc", + "mio 1.0.3", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.8", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.31", + "log", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-openssl" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59df6849caa43bb7567f9a36f863c447d95a11d5903c9cc334ba32576a27eadd" +dependencies = [ + "openssl", + "openssl-sys", + "tokio", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" +dependencies = [ + "async-trait", + "byteorder", + "bytes 1.10.1", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.9.0", + "socket2 0.5.8", + "tokio", + "tokio-util", + "whoami", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls 0.23.25", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "git+https://github.com/mornyx/tokio-tungstenite?branch=extend-0.20.1#776fb4193126375bce3c03cd38df8b49a77d488c" +dependencies = [ + "futures-util", + "log", + "rustls 0.22.4", + "tokio", + "tungstenite 0.20.1", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite 0.21.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +dependencies = [ + "bytes 1.10.1", + "futures-core", + "futures-sink", + "pin-project-lite", + "slab", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.26", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum 0.6.20", + "base64 0.21.7", + "bytes 1.10.1", + "flate2", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-timeout 0.4.1", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "rustls-native-certs 0.7.3", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum 0.7.9", + "base64 0.22.1", + "bytes 1.10.1", + "h2 0.4.8", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-timeout 0.5.2", + "hyper-util", + "percent-encoding", + "pin-project", + "prost 0.13.5", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", + "socket2 0.5.8", + "tokio", + "tokio-rustls 0.26.2", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build 0.12.6", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tonic-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build 0.13.5", + "prost-types 0.13.5", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "async-compression", + "base64 0.21.7", + "bitflags 2.9.0", + "bytes 1.10.1", + "futures-core", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "http-range-header", + "mime", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core 0.1.33", +] + +[[package]] +name = "tracing" +version = "0.2.0" +source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-core 0.2.0", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-core" +version = "0.2.0" +source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures 0.3.31", + "futures-task", + "pin-project", + "tracing 0.1.41", +] + +[[package]] +name = "tracing-futures" +version = "0.3.0" +source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +dependencies = [ + "pin-project-lite", + "tracing 0.2.0", +] + +[[package]] +name = "tracing-limit" +version = "0.1.0" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "dashmap", + "tracing-core 0.1.33", + "tracing-subscriber", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core 0.1.33", +] + +[[package]] +name = "tracing-serde" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +dependencies = [ + "serde", + "tracing-core 0.1.33", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "thread_local", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "tracing-tower" +version = "0.1.0" +source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" +dependencies = [ + "futures 0.3.31", + "tower-service", + "tracing 0.2.0", + "tracing-futures 0.3.0", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "git+https://github.com/mornyx/tungstenite-rs?branch=extend-0.20.1#fcddcd6070ee24f679edf97c58f61a0d258aa3b7" +dependencies = [ + "byteorder", + "bytes 1.10.1", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes 1.10.1", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typed-builder" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "typetag" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f22b40dd7bfe8c14230cf9702081366421890435b2d625fa92b4acc4c3de6f" +dependencies = [ + "erased-serde", + "inventory", + "once_cell", + "serde", + "typetag-impl", +] + +[[package]] +name = "typetag-impl" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35f5380909ffc31b4de4f4bdf96b877175a016aa2ca98cee39fcfd8c4d53d952" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tz-rs" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33851b15c848fad2cf4b105c6bb66eb9512b6f6c44a4b13f57c53c73c707e2b4" +dependencies = [ + "const_fn", +] + +[[package]] +name = "uaparser" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c9e1c3f893758f154004195fc2d2c52fbda462df725220ceaef830ac29affa" +dependencies = [ + "derive_more", + "lazy_static", + "regex", + "serde", + "serde_derive", + "serde_yaml", +] + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-truncate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +dependencies = [ + "itertools 0.13.0", + "unicode-segmentation", + "unicode-width 0.1.14", +] + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "uom" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ee6bfd0a27bf614353809a035cf6880b74239ec6c5e39a7b2860ca16809137" +dependencies = [ + "num-rational", + "num-traits", + "typenum", +] + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +dependencies = [ + "getrandom 0.3.2", + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vdev" +version = "0.1.0" +dependencies = [ + "anyhow", + "cached", + "chrono", + "clap", + "clap-verbosity-flag", + "clap_complete", + "confy", + "directories", + "dunce", + "glob", + "hex", + "indexmap 2.2.6", + "indicatif", + "itertools 0.12.1", + "log", + "once_cell", + "os_info", + "owo-colors", + "paste", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_yaml", + "sha2", + "tempfile", + "toml", +] + +[[package]] +name = "vector" +version = "0.37.1" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" +dependencies = [ + "arc-swap", + "arr_macro", + "async-compression", + "async-graphql", + "async-graphql-warp", + "async-stream", + "async-trait", + "aws-config", + "aws-credential-types", + "aws-sdk-cloudwatch", + "aws-sdk-cloudwatchlogs", + "aws-sdk-firehose", + "aws-sdk-kinesis", + "aws-sdk-s3", + "aws-sdk-sns", + "aws-sdk-sqs", + "aws-sdk-sts", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-http 0.60.12", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "axum 0.6.20", + "azure_core", + "azure_identity", + "azure_storage", + "azure_storage_blobs", + "base64 0.22.1", + "bloomy", + "bollard", + "bytes 1.10.1", + "bytesize", + "chrono", + "chrono-tz", + "cidr-utils", + "clap", + "colored", + "crossterm", + "csv", + "derivative", + "dirs-next", + "dnsmsg-parser", + "dyn-clone", + "encoding_rs", + "enum_dispatch", + "exitcode", + "fakedata", + "flate2", + "futures 0.3.31", "futures-util", "glob", "goauth", + "governor", + "h2 0.4.8", + "hash_hasher", + "hashbrown 0.14.5", "headers", + "heim", + "hex", + "hickory-proto", "hostname", - "http", - "http-body", - "hyper", + "http 0.2.12", + "http-body 0.4.6", + "http-serde", + "hyper 0.14.32", "hyper-openssl", "hyper-proxy", - "indexmap", + "indexmap 2.2.6", "indoc", - "inventory 0.1.11", - "lookup", + "infer 0.15.0", + "inventory", + "ipnet", + "itertools 0.12.1", + "k8s-openapi", + "kube", + "lapin", + "listenfd", + "loki-logproto", + "lru", + "maxminddb", "md-5", "metrics", "metrics-tracing-context", - "nix", + "mlua", + "nix 0.26.4", + "nom", "notify", + "num-format", + "number_prefix", "once_cell", + "opendal", "openssl", "openssl-probe", - "ordered-float 3.0.0", + "openssl-src", + "ordered-float 4.6.0", + "paste", "percent-encoding", "pin-project", "portpicker", - "prost", + "postgres-openssl", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-reflect", + "prost-types 0.12.6", "rand 0.8.5", "rand_distr", + "ratatui", + "redis", "regex", - "schannel", - "security-framework", + "rmp-serde", + "rmpv", + "rumqttc", + "seahash", + "semver", "serde", "serde-toml-merge", + "serde_bytes", "serde_json", + "serde_with", "serde_yaml", + "sha2", "smallvec", "smpl_jwt", - "snafu", - "socket2", + "snafu 0.7.5", + "snap", + "socket2 0.5.8", "stream-cancel", "strip-ansi-escapes", + "syslog", + "tikv-jemallocator", "tokio", "tokio-openssl", + "tokio-postgres", "tokio-stream", + "tokio-tungstenite 0.20.1", "tokio-util", "toml", - "tower", - "tracing 0.1.34", - "tracing-core 0.1.28", + "tonic 0.11.0", + "tonic-build 0.11.0", + "tower 0.4.13", + "tower-http", + "tracing 0.1.41", + "tracing-core 0.1.33", "tracing-futures 0.2.5", "tracing-limit", "tracing-subscriber", "tracing-tower", "typetag", "url", - "uuid 1.1.2", - "value", + "uuid", + "vector-lib", "vector-vrl-functions", - "vector_buffers", - "vector_common", - "vector_config 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_config_macros 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_core", "vrl", - "vrl-stdlib", "warp", "windows-service", + "zstd", ] [[package]] -name = "vector-extensions" -version = "0.23.3" +name = "vector-api-client" +version = "0.1.2" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "aws-s3-upload-file", - "filename", - "gcp-cloud-storage-upload-file", - "hyper", - "inventory 0.1.11", - "lazy_static", - "regex", + "anyhow", + "async-trait", + "chrono", + "clap", + "futures 0.3.31", + "graphql_client", + "indoc", + "reqwest", + "serde", + "serde_json", "tokio", - "topsql", + "tokio-stream", + "tokio-tungstenite 0.20.1", "url", - "vector", - "vm-import", -] - -[[package]] -name = "vector-vrl-functions" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" -dependencies = [ - "lookup", - "value", - "vrl", + "uuid", ] [[package]] -name = "vector_buffers" +name = "vector-buffers" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ "async-recursion", "async-stream", "async-trait", "bytecheck", - "bytes 1.2.1", + "bytes 1.10.1", "crc32fast", "crossbeam-queue", "crossbeam-utils", - "db-key", + "derivative", "fslock", - "futures 0.3.21", - "leveldb", + "futures 0.3.31", "memmap2", "metrics", "num-traits", - "parking_lot 0.12.1", + "paste", "pin-project", "rkyv", "serde", - "snafu", + "snafu 0.7.5", "tokio", "tokio-util", - "tracing 0.1.34", - "vector_common", + "tracing 0.1.41", + "vector-common", + "vector-config", + "vector-config-common", + "vector-config-macros", ] [[package]] -name = "vector_common" +name = "vector-common" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "bytes 1.2.1", + "async-stream", + "bytes 1.10.1", "chrono", "chrono-tz", "crossbeam-utils", "derivative", - "futures 0.3.21", + "futures 0.3.31", + "indexmap 2.2.6", "metrics", "nom", - "ordered-float 3.0.0", + "ordered-float 4.6.0", + "paste", "pin-project", + "ryu", "serde", "serde_json", "smallvec", - "snafu", + "snafu 0.7.5", "stream-cancel", "tokio", - "tracing 0.1.34", - "value", - "vector_config 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", -] - -[[package]] -name = "vector_config" -version = "0.1.0" -source = "git+https://github.com/vectordotdev/vector?tag=v0.23.3#af8c9e1f2561b3d2b32903e03acab9dc1bf44be4" -dependencies = [ - "encoding_rs", - "indexmap", - "num-traits", - "schemars", - "serde", - "serde_json", - "vector_config_common 0.1.0 (git+https://github.com/vectordotdev/vector?tag=v0.23.3)", - "vector_config_macros 0.1.0 (git+https://github.com/vectordotdev/vector?tag=v0.23.3)", + "tracing 0.1.41", + "vector-config", + "vector-config-common", + "vector-config-macros", + "vrl", ] [[package]] -name = "vector_config" +name = "vector-config" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ + "chrono", + "chrono-tz", "encoding_rs", - "indexmap", + "http 0.2.12", + "indexmap 2.2.6", + "inventory", + "no-proxy", "num-traits", - "schemars", "serde", "serde_json", - "vector_config_common 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_config_macros 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", -] - -[[package]] -name = "vector_config_common" -version = "0.1.0" -source = "git+https://github.com/vectordotdev/vector?tag=v0.23.3#af8c9e1f2561b3d2b32903e03acab9dc1bf44be4" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "schemars", - "syn", -] - -[[package]] -name = "vector_config_common" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "schemars", - "syn", + "serde_with", + "snafu 0.7.5", + "toml", + "tracing 0.1.41", + "url", + "vector-config-common", + "vector-config-macros", + "vrl", ] [[package]] -name = "vector_config_macros" +name = "vector-config-common" version = "0.1.0" -source = "git+https://github.com/vectordotdev/vector?tag=v0.23.3#af8c9e1f2561b3d2b32903e03acab9dc1bf44be4" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "darling 0.13.4", + "convert_case 0.6.0", + "darling 0.20.10", + "once_cell", "proc-macro2", "quote", - "serde_derive_internals", - "syn", - "vector_config_common 0.1.0 (git+https://github.com/vectordotdev/vector?tag=v0.23.3)", + "serde", + "serde_json", + "syn 2.0.100", + "tracing 0.1.41", ] [[package]] -name = "vector_config_macros" +name = "vector-config-macros" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "darling 0.13.4", + "darling 0.20.10", "proc-macro2", "quote", "serde_derive_internals", - "syn", - "vector_config_common 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", + "syn 2.0.100", + "vector-config-common", ] [[package]] -name = "vector_core" +name = "vector-core" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ + "async-graphql", "async-trait", "bitmask-enum", - "bytes 1.2.1", + "bytes 1.10.1", "chrono", "crossbeam-utils", "dyn-clone", "enrichment", "enumflags2", "float_eq", - "futures 0.3.21", + "futures 0.3.31", "futures-util", "headers", - "http", + "http 0.2.12", "hyper-proxy", - "indexmap", - "lookup", + "indexmap 2.2.6", + "ipnet", "metrics", "metrics-tracing-context", "metrics-util", + "mlua", "no-proxy", "once_cell", - "ordered-float 3.0.0", + "openssl", + "ordered-float 4.6.0", + "parking_lot", "pin-project", - "prost", - "prost-build", - "prost-types", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "quanta 0.12.5", "regex", + "ryu", + "schannel", + "security-framework 2.11.1", "serde", "serde_json", - "snafu", + "serde_with", + "smallvec", + "snafu 0.7.5", + "socket2 0.5.8", "tokio", + "tokio-openssl", + "tokio-stream", "tokio-util", "toml", - "tower", - "tracing 0.1.34", - "tracing-core 0.1.28", - "tracing-log", + "tonic 0.11.0", + "tracing 0.1.41", + "tracing-core 0.1.33", "tracing-subscriber", - "twox-hash", "typetag", "url", - "value", - "vector_buffers", - "vector_common", - "vector_config 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", - "vector_config_macros 0.1.0 (git+https://github.com/zhongzc/vector?branch=extend-0.23)", + "vector-buffers", + "vector-common", + "vector-config", + "vector-config-common", + "vector-config-macros", + "vector-lookup", "vrl", ] [[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "vm-import" -version = "0.0.1" +name = "vector-extensions" +version = "0.37.1" dependencies = [ + "async-recursion", "async-trait", - "bytes 1.2.1", + "aws-sdk-s3", + "aws-smithy-types", + "azure_storage_blobs", + "base64 0.22.1", + "bytes 1.10.1", + "chrono", + "etcd-client", + "exitcode", + "file-source", "flate2", + "futures 0.3.31", "futures-util", - "http", - "hyper", + "goauth", + "hex", + "http 0.2.12", + "hyper 0.14.32", + "inventory", + "lazy_static", + "md-5", + "metrics", + "ordered-float 4.6.0", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "rand 0.8.5", + "regex", + "reqwest", "serde", "serde_json", + "snafu 0.7.5", + "tokio", + "tokio-openssl", + "tokio-stream", + "tokio-util", "toml", - "topsql", - "tracing 0.1.34", + "tonic 0.11.0", + "tonic-build 0.11.0", + "tracing 0.1.41", + "tracing-futures 0.2.5", "typetag", + "url", "vector", + "vector-config", + "vector-lib", ] [[package]] -name = "vrl" +name = "vector-lib" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "bytes 1.2.1", - "indoc", - "lookup", - "ordered-float 3.0.0", - "value", - "vector_common", - "vrl-compiler", - "vrl-diagnostic", - "vrl-parser", + "codecs", + "enrichment", + "file-source", + "opentelemetry-proto", + "prometheus-parser", + "vector-api-client", + "vector-buffers", + "vector-common", + "vector-config", + "vector-core", + "vector-lookup", + "vector-stream", ] [[package]] -name = "vrl-compiler" +name = "vector-lookup" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "anymap", - "bytes 1.2.1", - "chrono", - "dyn-clone", - "lalrpop-util", - "lookup", - "ordered-float 3.0.0", - "paste", - "regex", "serde", - "thiserror", - "value", - "vector_common", - "vrl-core", - "vrl-diagnostic", - "vrl-parser", + "vector-config", + "vector-config-macros", + "vrl", ] [[package]] -name = "vrl-core" +name = "vector-stream" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "lookup", - "value", - "vrl-diagnostic", + "async-stream", + "futures 0.3.31", + "futures-util", + "pin-project", + "tokio", + "tokio-util", + "tower 0.4.13", + "tracing 0.1.41", + "twox-hash", + "vector-common", + "vector-core", ] [[package]] -name = "vrl-diagnostic" +name = "vector-vrl-functions" version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +source = "git+https://github.com/mornyx/vector?branch=extend-0.37.1#a6888156870dc96ab9d7271b6c63ea110348656a" dependencies = [ - "codespan-reporting", - "termcolor", + "vrl", ] [[package]] -name = "vrl-parser" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" -dependencies = [ - "lalrpop", - "lalrpop-util", - "lookup", - "ordered-float 3.0.0", - "paste", - "thiserror", - "vrl-diagnostic", -] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "vrl-stdlib" -version = "0.1.0" -source = "git+https://github.com/zhongzc/vector?branch=extend-0.23#c14ea0e2e8daa6822f2bbfdd132d0cac46739410" +name = "vrl" +version = "0.13.0" +source = "git+https://github.com/mornyx/vrl?branch=extend-0.13.0#bd2c56e80628c1bbc3c14665b37dc1107b8c5b9f" dependencies = [ "aes", - "base64", - "bytes 1.2.1", + "ansi_term", + "arbitrary", + "base16", + "base64 0.22.1", + "bytes 1.10.1", "cbc", "cfb-mode", + "cfg-if", + "chacha20poly1305", + "charset", "chrono", + "chrono-tz", "cidr-utils", + "clap", + "codespan-reporting", + "community-id", + "crypto_secretbox", "csv", "ctr", - "datadog-filter", - "datadog-grok", - "datadog-search-syntax", + "data-encoding", + "digest", "dns-lookup", + "dyn-clone", + "exitcode", + "flate2", "grok", "hex", + "hmac", "hostname", - "indexmap", - "lookup", + "iana-time-zone", + "idna", + "indexmap 2.2.6", + "indoc", + "itertools 0.12.1", + "lalrpop", + "lalrpop-util", "md-5", + "mlua", "nom", "ofb", "once_cell", + "onig", + "ordered-float 4.6.0", + "paste", + "peeking_take_while", "percent-encoding", + "pest", + "pest_derive", + "prettydiff", + "prettytable-rs", + "prost 0.12.6", + "prost-reflect", + "psl", + "quickcheck", + "quoted_printable", "rand 0.8.5", "regex", "roxmltree", "rust_decimal", + "rustyline", + "seahash", "serde", "serde_json", - "sha-1 0.10.0", + "sha-1", "sha2", "sha3", + "snafu 0.8.5", + "snap", "strip-ansi-escapes", "syslog_loose", - "tracing 0.1.34", + "termcolor", + "thiserror 1.0.69", + "tracing 0.1.41", "uaparser", "url", "utf8-width", - "uuid 1.1.2", - "value", - "vector_common", - "vrl", + "uuid", + "webbrowser", "woothee", + "zstd", ] +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "vte" -version = "0.10.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" dependencies = [ - "arrayvec 0.5.2", - "utf8parse", - "vte_generate_state_changes", + "memchr", ] [[package]] -name = "vte_generate_state_changes" -version = "0.1.1" +name = "waker-fn" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" -dependencies = [ - "proc-macro2", - "quote", -] +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", - "winapi 0.3.9", "winapi-util", ] [[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", ] [[package]] -name = "warp" -version = "0.3.3" +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes 1.10.1", + "futures-channel", + "futures-util", + "headers", + "http 0.2.12", + "hyper 0.14.32", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-tungstenite 0.21.0", + "tokio-util", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.100", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webbrowser" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" +dependencies = [ + "core-foundation 0.9.4", + "home", + "jni", + "log", + "ndk-context", + "objc", + "raw-window-handle", + "url", + "web-sys", +] + +[[package]] +name = "which" +version = "7.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" +dependencies = [ + "either", + "env_home", + "rustix 0.38.44", + "winsafe", +] + +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall", + "wasite", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" + +[[package]] +name = "widestring" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" + +[[package]] +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "bytes 1.2.1", - "futures-channel", - "futures-util", - "headers", - "http", - "hyper", - "log", - "mime", - "mime_guess", - "percent-encoding", - "pin-project", - "rustls-pemfile 0.2.1", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-stream", - "tokio-util", - "tower-service", - "tracing 0.1.34", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +name = "winapi-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "wasm-bindgen" -version = "0.2.83" +name = "windows" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen-macro", + "windows-core 0.57.0", + "windows-targets 0.52.6", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" +name = "windows-core" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", + "windows-targets 0.52.6", ] [[package]] -name = "wasm-bindgen-futures" -version = "0.4.33" +name = "windows-core" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", ] [[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" +name = "windows-implement" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ + "proc-macro2", "quote", - "wasm-bindgen-macro-support", + "syn 2.0.100", ] [[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" +name = "windows-interface" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "syn 2.0.100", ] [[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" +name = "windows-link" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] -name = "web-sys" -version = "0.3.57" +name = "windows-result" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "js-sys", - "wasm-bindgen", + "windows-targets 0.52.6", ] [[package]] -name = "webpki" -version = "0.21.4" +name = "windows-service" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +checksum = "cd9db37ecb5b13762d95468a2fc6009d4b2c62801243223aabd44fca13ad13c8" dependencies = [ - "ring", - "untrusted", + "bitflags 1.3.2", + "widestring 1.2.0", + "windows-sys 0.45.0", ] [[package]] -name = "webpki" -version = "0.22.0" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "ring", - "untrusted", + "windows-targets 0.42.2", ] [[package]] -name = "webpki-roots" -version = "0.22.3" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "webpki 0.22.0", + "windows-targets 0.48.5", ] [[package]] -name = "which" -version = "4.2.5" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "either", - "lazy_static", - "libc", + "windows-targets 0.52.6", ] [[package]] -name = "widestring" -version = "0.4.3" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] [[package]] -name = "winapi" -version = "0.2.8" +name = "windows-targets" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +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 = "winapi" -version = "0.3.9" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] -name = "winapi-build" -version = "0.1.1" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows_aarch64_gnullvm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows_aarch64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows-service" -version = "0.4.0" +name = "windows_aarch64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c643e10139d127d30d6d753398c8a6f0a43532e8370f6c9d29ebbff29b984ab" -dependencies = [ - "bitflags", - "err-derive", - "widestring", - "winapi 0.3.9", -] +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] -name = "windows-sys" -version = "0.34.0" +name = "windows_aarch64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" -dependencies = [ - "windows_aarch64_msvc 0.34.0", - "windows_i686_gnu 0.34.0", - "windows_i686_msvc 0.34.0", - "windows_x86_64_gnu 0.34.0", - "windows_x86_64_msvc 0.34.0", -] +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "windows-sys" -version = "0.36.1" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "windows_aarch64_msvc" -version = "0.34.0" +name = "windows_i686_gnu" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.34.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_gnu" -version = "0.36.1" +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi 0.3.9", + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", ] [[package]] @@ -5933,53 +9877,169 @@ dependencies = [ ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "wyz" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "tap", ] [[package]] name = "xmlparser" -version = "0.13.3" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "yoke" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ - "linked-hash-map", + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", ] [[package]] name = "zerocopy" -version = "0.3.0" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6580539ad917b7c026220c4b3f2c08d52ce54d6ce0dc491e66002e35388fab46" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive 0.8.24", ] [[package]] name = "zerocopy-derive" -version = "0.2.0" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d498dbd1fd7beb83c86709ae1c33ca50942889473473d287d56ce4770a18edfb" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", - "syn", + "quote", + "syn 2.0.100", "synstructure", ] [[package]] name = "zeroize" -version = "1.5.7" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.15+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index 99ff89b..a2e6852 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vector-extensions" -version = "0.23.3" +version = "0.37.1" edition = "2021" readme = "README.md" publish = false @@ -10,51 +10,187 @@ default-run = "vector" path = "src/main.rs" name = "vector" -[features] -default = ["topsql", "vm-import", "aws-s3-upload-file", "gcp-cloud-storage-upload-file", "filename"] - -topsql = ["dep:topsql"] -vm-import = ["dep:vm-import"] -aws-s3-upload-file = ["dep:aws-s3-upload-file"] -gcp-cloud-storage-upload-file = ["dep:gcp-cloud-storage-upload-file"] -filename = ["dep:filename"] - [dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false } -inventory = { version = "0.1.10", default-features = false } - -# Extensions -topsql = { path = "extensions/topsql", optional = true } -vm-import = { path = "extensions/vm-import", optional = true } -aws-s3-upload-file = { path = "extensions/aws-s3-upload-file", optional = true } -gcp-cloud-storage-upload-file = { path = "extensions/gcp-cloud-storage-upload-file", optional = true } -filename = { path = "extensions/filename", optional = true } +async-recursion = "1.0.0" +async-trait = { version = "0.1.78", default-features = false } +aws-sdk-s3 = { version = "1.4.0", default-features = false, features = ["behavior-version-latest"] } +aws-smithy-types = { version = "1.1.8", default-features = false } +azure_storage_blobs = { version = "0.17", default-features = false, features = ["enable_reqwest"] } +base64 = { version = "0.22.0", default-features = false } +bytes = { version = "1.5.0", default-features = false, features = ["serde"] } +chrono = { version = "0.4.34", default-features = false, features = ["clock", "serde"] } +etcd-client = { version = "0.14", features = ["tls-roots"] } +exitcode = { version = "1.1.2", default-features = false } +file-source = { git = "https://github.com/mornyx/vector", branch = "extend-0.37.1" } +flate2 = { version = "1.0.28", default-features = false, features = ["default"] } +futures = { version = "0.3.30", default-features = false, features = ["compat", "io-compat"], package = "futures" } +futures-util = { version = "0.3.29", default-features = false } +goauth = { version = "0.14.0" } +hex = { version = "0.4.3", default-features = false } +http = { version = "0.2.9", default-features = false } +hyper = { version = "0.14.28", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } +inventory = { version = "0.3.15", default-features = false } +md-5 = { version = "0.10", default-features = false } +metrics = "0.21.1" +ordered-float = { version = "4.2.0", default-features = false } +prost = { version = "0.12", default-features = false, features = ["std"] } +prost-types = { version = "0.12", default-features = false } +rand = "0.8" +reqwest = { version = "0.11.26", features = ["native-tls"] } +serde = { version = "1.0.197", default-features = false, features = ["derive"] } +serde_json = { version = "1.0.114", default-features = false, features = ["std", "raw_value"] } +snafu = { version = "0.7.5", default-features = false, features = ["futures"] } +tokio = { version = "1.36.0", default-features = false, features = ["full"] } +tokio-openssl = { version = "0.6.4", default-features = false } +tokio-stream = { version = "0.1.15", default-features = false, features = ["net", "sync", "time"] } +tokio-util = { version = "0.7", default-features = false, features = ["io", "time"] } +toml = { version = "0.8.12", default-features = false } +tonic = { version = "0.11", default-features = false, features = ["transport", "codegen", "prost", "tls", "tls-roots", "gzip"] } +tracing = { version = "0.1.34", default-features = false } +tracing-futures = { version = "0.2.5", default-features = false, features = ["futures-03"] } +typetag = { version = "0.2.16", default-features = false } +url = { version = "2.5.0", default-features = false, features = ["serde"] } +vector = { git = "https://github.com/mornyx/vector", branch = "extend-0.37.1", default-features = false, features = ["aws-config", "sinks-aws_s3", "gcp", "sinks-gcp"] } +vector-config = { git = "https://github.com/mornyx/vector", branch = "extend-0.37.1", default-features = false } +vector-lib = { git = "https://github.com/mornyx/vector", branch = "extend-0.37.1", default-features = false } [dev-dependencies] -hyper = { version = "0.14.20", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } -tokio = { version = "1.20.4", default-features = false, features = ["full"] } -url = "2.3.1" -regex = "1.6.0" lazy_static = "1.4.0" +rand = "0.8" +regex = "1.10.3" -[workspace] -members = [ - "packages/common", +[build-dependencies] +prost-build = { version = "0.12", default-features = false } +tonic-build = { version = "0.11", default-features = false, features = ["transport", "prost"] } - "extensions/topsql", - "extensions/vm-import", - "extensions/aws-s3-upload-file", - "extensions/gcp-cloud-storage-upload-file", - "extensions/filename", +[features] +default = [ + "sinks", + "sources", + "vector/api", + "vector/api-client", + "vector/enrichment-tables", + # "vector/sinks", + # "vector/sources", + "vector/sources-dnstap", + "vector/transforms", + "vector/unix", + "vector/enterprise", +] +sources = ["sources-logs", "sources-metrics"] +sources-logs = [ + "vector/sources-amqp", + "vector/sources-aws_kinesis_firehose", + "vector/sources-aws_s3", + "vector/sources-aws_sqs", + "vector/sources-datadog_agent", + "vector/sources-demo_logs", + "vector/sources-docker_logs", + "vector/sources-exec", + "vector/sources-file", + "vector/sources-fluent", + "vector/sources-gcp_pubsub", + "vector/sources-heroku_logs", + "vector/sources-http_server", + "vector/sources-http_client", + "vector/sources-internal_logs", + "vector/sources-journald", + # "vector/sources-kafka", + "vector/sources-kubernetes_logs", + "vector/sources-logstash", + # "vector/sources-nats", + "vector/sources-opentelemetry", + # "vector/sources-pulsar", + "vector/sources-file-descriptor", + "vector/sources-redis", + "vector/sources-socket", + # "vector/sources-splunk_hec", + "vector/sources-stdin", + "vector/sources-syslog", + "vector/sources-vector", +] +sources-metrics = [ + "vector/sources-apache_metrics", + "vector/sources-aws_ecs_metrics", + "vector/sources-eventstoredb_metrics", + "vector/sources-host_metrics", + "vector/sources-internal_metrics", + # "vector/sources-mongodb_metrics", + "vector/sources-nginx_metrics", + "vector/sources-postgresql_metrics", + "vector/sources-prometheus", + "vector/sources-statsd", + "vector/sources-vector", +] +sinks = ["sinks-logs", "sinks-metrics"] +sinks-logs = [ + "vector/sinks-amqp", + "vector/sinks-appsignal", + "vector/sinks-aws_cloudwatch_logs", + "vector/sinks-aws_kinesis_firehose", + "vector/sinks-aws_kinesis_streams", + "vector/sinks-aws_s3", + "vector/sinks-aws_sqs", + "vector/sinks-aws_sns", + "vector/sinks-axiom", + "vector/sinks-azure_blob", + "vector/sinks-azure_monitor_logs", + "vector/sinks-blackhole", + "vector/sinks-chronicle", + "vector/sinks-clickhouse", + "vector/sinks-console", + "vector/sinks-databend", + "vector/sinks-datadog_events", + "vector/sinks-datadog_logs", + "vector/sinks-datadog_traces", + "vector/sinks-elasticsearch", + "vector/sinks-file", + "vector/sinks-gcp", + "vector/sinks-honeycomb", + "vector/sinks-http", + "vector/sinks-humio", + "vector/sinks-influxdb", + # "vector/sinks-kafka", + "vector/sinks-mezmo", + "vector/sinks-loki", + "vector/sinks-mqtt", + # "vector/sinks-nats", + "vector/sinks-new_relic_logs", + "vector/sinks-new_relic", + "vector/sinks-papertrail", + # "vector/sinks-pulsar", + "vector/sinks-redis", + "vector/sinks-sematext", + "vector/sinks-socket", + # "vector/sinks-splunk_hec", + "vector/sinks-vector", + "vector/sinks-webhdfs", + "vector/sinks-websocket", +] +sinks-metrics = [ + "vector/sinks-appsignal", + "vector/sinks-aws_cloudwatch_metrics", + "vector/sinks-blackhole", + "vector/sinks-console", + "vector/sinks-datadog_metrics", + # "vector/sinks-greptimedb", + "vector/sinks-humio", + "vector/sinks-influxdb", + # "vector/sinks-kafka", + "vector/sinks-prometheus", + "vector/sinks-sematext", + "vector/sinks-statsd", + "vector/sinks-vector", + # "vector/sinks-splunk_hec", ] -[patch.'https://github.com/vectordotdev/vector'] -vector = { git = "https://github.com/zhongzc/vector", branch = "extend-0.23" } -vector_core = { git = "https://github.com/zhongzc/vector", branch = "extend-0.23" } +[workspace] +members = ["vdev"] -[patch.crates-io] -# Removes dependency on `time` v0.1 -# https://github.com/chronotope/chrono/pull/578 -chrono = { git = "https://github.com/vectordotdev/chrono.git", branch = "no-default-time" } -# The upgrade for `tokio-util` >= 0.6.9 is blocked on https://github.com/vectordotdev/vector/issues/11257. -tokio-util = { git = "https://github.com/vectordotdev/tokio", version = "0.7", rev = "3aa231cf6f33f74ca29077163879f0de9a207ad8" } +[workspace.dependencies] +chrono = { version = "0.4.40", default-features = false, features = ["clock", "serde"] } +clap = { version = "4.5.3", default-features = false, features = ["derive", "error-context", "env", "help", "std", "string", "usage", "wrap_help"] } +indexmap = { version = "2.2.5", default-features = false, features = ["serde", "std"] } +serde = { version = "1.0.197", default-features = false, features = ["alloc", "derive", "rc"] } +serde_json = { version = "1.0.114", default-features = false, features = ["raw_value", "std"] } +toml = { version = "0.8.12", default-features = false, features = ["display", "parse"] } diff --git a/Cross.toml b/Cross.toml index 1b138c3..96e97d7 100644 --- a/Cross.toml +++ b/Cross.toml @@ -28,3 +28,9 @@ image = "vector-cross-env:armv7-unknown-linux-gnueabihf" [target.armv7-unknown-linux-musleabihf] image = "vector-cross-env:armv7-unknown-linux-musleabihf" + +[target.arm-unknown-linux-gnueabi] +image = "vector-cross-env:arm-unknown-linux-gnueabi" + +[target.arm-unknown-linux-musleabi] +image = "vector-cross-env:arm-unknown-linux-musleabi" diff --git a/LICENSE b/LICENSE index 675c2ec..b67d909 100644 --- a/LICENSE +++ b/LICENSE @@ -198,4 +198,4 @@ Apache License distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file + limitations under the License. diff --git a/Makefile b/Makefile index 8b03ee8..b014fe6 100644 --- a/Makefile +++ b/Makefile @@ -35,13 +35,13 @@ test: .PHONY: build build: @echo "Building..." - @cargo build --no-default-features --features default,vector/default + @cargo build --no-default-features --features default @echo "Done building." .PHONY: build-release build-release: @echo "Building release..." - @cargo build --release --no-default-features --features default,vector/default + @cargo build --release --no-default-features --features default @echo "Done building release." .PHONY: build-x86_64-unknown-linux-gnu @@ -86,7 +86,7 @@ target/%/vector: cargo-install-cross $(if $(findstring release,$(PROFILE)),--release,) \ --target ${TRIPLE} \ --no-default-features \ - --features default,vector/target-${TRIPLE} + --features default .PHONY: cargo-install-% cargo-install-%: override TOOL = $(@:cargo-install-%=%) @@ -96,7 +96,7 @@ cargo-install-%: .PHONY: release-docker release-docker: target/x86_64-unknown-linux-gnu/release/vector release-docker: target/aarch64-unknown-linux-gnu/release/vector -release-docker: target/armv7-unknown-linux-gnueabihf/release/vector +# release-docker: target/armv7-unknown-linux-gnueabihf/release/vector @echo "Releasing docker image..." @scripts/release-docker.sh @echo "Done releasing docker image." diff --git a/README.md b/README.md index 585fbaf..eca84b2 100644 --- a/README.md +++ b/README.md @@ -106,9 +106,12 @@ make build-armv7-unknown-linux-musleabihf ```bash make target/x86_64-unknown-linux-gnu/release/vector JEMALLOC_SYS_WITH_LG_PAGE=16 make target/aarch64-unknown-linux-gnu/release/vector -JEMALLOC_SYS_WITH_LG_PAGE=16 make target/armv7-unknown-linux-gnueabihf/release/vector +# JEMALLOC_SYS_WITH_LG_PAGE=16 make target/armv7-unknown-linux-gnueabihf/release/vector make release-docker # build with given version and repo REPO=tidbcloud/vector VERSION=0.23.3 make release-docker + +make clean +REPO=mornyx/vector VERSION=0.37.1-9cee53 make release-docker ``` diff --git a/extensions/topsql/build.rs b/build.rs similarity index 94% rename from extensions/topsql/build.rs rename to build.rs index c7811b2..6ce380a 100644 --- a/extensions/topsql/build.rs +++ b/build.rs @@ -6,7 +6,7 @@ fn main() { println!("cargo:rerun-if-changed=proto/resource_tag.proto"); let mut prost_build = prost_build::Config::new(); - prost_build.btree_map(&["."]); + prost_build.btree_map(["."]); tonic_build::configure() .compile_with_config( diff --git a/clippy.toml b/clippy.toml index 63d9f13..f8cb0ec 100644 --- a/clippy.toml +++ b/clippy.toml @@ -5,3 +5,8 @@ cognitive-complexity-threshold = 75 disallowed-methods = [ { path = "std::io::Write::write", reason = "This doesn't handle short writes, use `write_all` instead." }, ] + +disallowed-types = [ + { path = "once_cell::sync::OnceCell", reason = "Use `std::sync::OnceLock` instead." }, + { path = "once_cell::unsync::OnceCell", reason = "Use `std::cell::OnceCell` instead." }, +] diff --git a/config/vector.toml b/config/vector.toml deleted file mode 100644 index 03835e4..0000000 --- a/config/vector.toml +++ /dev/null @@ -1,44 +0,0 @@ -# __ __ __ -# \ \ / / / / -# \ V / / / -# \_/ \/ -# -# V E C T O R -# Configuration -# -# ------------------------------------------------------------------------------ -# Website: https://vector.dev -# Docs: https://vector.dev/docs -# Chat: https://chat.vector.dev -# ------------------------------------------------------------------------------ - -# Change this to use a non-default directory for Vector data storage: -# data_dir = "/var/lib/vector" - -# Random Syslog-formatted logs -[sources.dummy_logs] -type = "demo_logs" -format = "syslog" -interval = 1 - -# Parse Syslog logs -# See the Vector Remap Language reference for more info: https://vrl.dev -[transforms.parse_logs] -type = "remap" -inputs = ["dummy_logs"] -source = ''' -. = parse_syslog!(string!(.message)) -''' - -# Print parsed logs to stdout -[sinks.print] -type = "console" -inputs = ["parse_logs"] -encoding.codec = "json" - -# Vector's GraphQL API (disabled by default) -# Uncomment to try it out with the `vector top` command or -# in your browser at http://localhost:8686 -#[api] -#enabled = true -#address = "127.0.0.1:8686" diff --git a/extensions/aws-s3-upload-file/Cargo.toml b/extensions/aws-s3-upload-file/Cargo.toml deleted file mode 100644 index bb6332b..0000000 --- a/extensions/aws-s3-upload-file/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -name = "aws-s3-upload-file" -version = "0.0.1" -edition = "2021" -publish = false - -[dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["aws-config", "sinks-aws_s3"] } -vector_core = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["vrl"] } - -common = { path = "../../packages/common" } - -tracing = { version = "0.1.34", default-features = false } -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -toml = { version = "0.5.9", default-features = false } -tokio = { version = "1.20.4", default-features = false, features = ["full"] } -async-trait = { version = "0.1.56", default-features = false } -tokio-util = { version = "0.7", default-features = false, features = ["io", "time"] } -futures = { version = "0.3.21", default-features = false, features = ["compat", "io-compat"], package = "futures" } -md-5 = { version = "0.10", default-features = false } -base64 = { version = "0.13.0", default-features = false } -url = { version = "2.2.2", default-features = false, features = ["serde"] } -aws-sdk-s3 = { version = "0.15.0", default-features = false, features = ["rustls"] } -futures-util = { version = "0.3.21", default-features = false } -typetag = { version = "0.1.8", default-features = false } -hex = { version = "0.4.3", default-features = false } diff --git a/extensions/aws-s3-upload-file/src/lib.rs b/extensions/aws-s3-upload-file/src/lib.rs deleted file mode 100644 index 56e8c1f..0000000 --- a/extensions/aws-s3-upload-file/src/lib.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[macro_use] -extern crate tracing; - -mod config; -mod etag_calculator; -mod processor; -mod uploader; - -pub use config::S3UploadFileConfig; diff --git a/extensions/filename/Cargo.toml b/extensions/filename/Cargo.toml deleted file mode 100644 index f0f7694..0000000 --- a/extensions/filename/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "filename" -version = "0.0.1" -edition = "2021" -publish = false - -[dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["aws-config", "sinks-aws_s3"] } -vector_core = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["vrl"] } -file-source = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3" } -vector_config = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3" } -vector_config_macros = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3" } - -tracing = { version = "0.1.34", default-features = false } -metrics = { version = "0.17.1", default-features = false, features = ["std"] } -typetag = { version = "0.1.8", default-features = false } -async-trait = { version = "0.1.56", default-features = false } -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -tokio = { version = "1.20.4", default-features = false, features = ["full"] } -toml = { version = "0.5.9", default-features = false } diff --git a/extensions/gcp-cloud-storage-upload-file/Cargo.toml b/extensions/gcp-cloud-storage-upload-file/Cargo.toml deleted file mode 100644 index ff006b8..0000000 --- a/extensions/gcp-cloud-storage-upload-file/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "gcp-cloud-storage-upload-file" -version = "0.0.1" -edition = "2021" -publish = false - -[dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["gcp", "sinks-gcp"] } -vector_core = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["vrl"] } - -common = { path = "../../packages/common" } - -tracing = { version = "0.1.34", default-features = false } -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -toml = { version = "0.5.9", default-features = false } -tokio = { version = "1.19.2", default-features = false, features = ["full"] } -async-trait = { version = "0.1.56", default-features = false } -tokio-util = { version = "0.7", default-features = false, features = ["io", "time"] } -futures = { version = "0.3.21", default-features = false, features = ["compat", "io-compat"], package = "futures" } -md-5 = { version = "0.10", default-features = false } -base64 = { version = "0.13.0", default-features = false } -futures-util = { version = "0.3.21", default-features = false } -typetag = { version = "0.1.8", default-features = false } -hex = { version = "0.4.3", default-features = false } -http = { version = "0.2.8", default-features = false } -hyper = { version = "0.14.19", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } -chrono = { version = "0.4.19", default-features = false, features = ["clock", "serde"] } -goauth = { version = "0.13.0" } diff --git a/extensions/gcp-cloud-storage-upload-file/src/lib.rs b/extensions/gcp-cloud-storage-upload-file/src/lib.rs deleted file mode 100644 index 4001958..0000000 --- a/extensions/gcp-cloud-storage-upload-file/src/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -#[macro_use] -extern crate tracing; - -mod config; -mod processor; -mod uploader; - -pub use config::GcsUploadFileSinkConfig; diff --git a/extensions/topsql/Cargo.toml b/extensions/topsql/Cargo.toml deleted file mode 100644 index a2e1ef0..0000000 --- a/extensions/topsql/Cargo.toml +++ /dev/null @@ -1,45 +0,0 @@ -[package] -name = "topsql" -version = "0.0.1" -edition = "2021" -publish = false - -[features] -vm-test = [] - -[dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false } -vector_core = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["vrl"] } - -async-recursion = "1.0.0" -etcd-client = { version = "0.9", features = ["tls-roots"] } - -prost-types = { version = "0.10.1", default-features = false } -tonic = { version = "0.7.2", default-features = false, features = ["transport", "codegen", "prost", "tls", "tls-roots", "compression"] } -hex = { version = "0.4.3", default-features = false } -snafu = { version = "0.7.1", default-features = false, features = ["futures"] } -hyper = { version = "0.14.19", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -http = { version = "0.2.8", default-features = false } -toml = { version = "0.5.9", default-features = false } -prost = { version = "0.10.4", default-features = false, features = ["std"] } -tokio = { version = "1.20.4", default-features = false, features = ["full"] } -serde_json = { version = "1.0.81", default-features = false, features = ["raw_value"] } -async-trait = { version = "0.1.56", default-features = false } -tracing = { version = "0.1.34", default-features = false } -tracing-futures = { version = "0.2.5", default-features = false, features = ["futures-03"] } -tokio-openssl = { version = "0.6.3", default-features = false } -typetag = { version = "0.1.8", default-features = false } -futures = { version = "0.3.21", default-features = false, features = ["compat", "io-compat"], package = "futures" } -tokio-stream = { version = "0.1.9", default-features = false, features = ["net", "sync", "time"] } -ordered-float = { version = "3.0.0", default-features = false } -chrono = { version = "0.4.19", default-features = false, features = ["serde"] } -bytes = { version = "1.1.0", default-features = false, features = ["serde"] } - -[build-dependencies] -prost-build = { version = "0.10.4", default-features = false } -tonic-build = { version = "0.7", default-features = false, features = ["transport", "prost", "compression"] } - -[dev-dependencies] -rand = "0.8" -futures-util = "0.3" diff --git a/extensions/topsql/src/lib.rs b/extensions/topsql/src/lib.rs deleted file mode 100644 index 563bdc7..0000000 --- a/extensions/topsql/src/lib.rs +++ /dev/null @@ -1,148 +0,0 @@ -#[macro_use] -extern crate tracing; - -mod config; -mod controller; -mod shutdown; -mod topology; -mod upstream; - -pub use config::TopSQLConfig; -// Since topsql is highly associated with vm_import, -// expose the event builder to vm_import for test. -#[cfg(feature = "vm-test")] -pub use upstream::parser; - -// #[cfg(test)] -// mod tests { -// use std::fs::read; -// use std::net::SocketAddr; - -// use self::{ -// config::{default_retry_delay, TopSQLPubSubConfig}, -// consts::{INSTANCE_TYPE_TIDB, INSTANCE_TYPE_TIKV}, -// upstream::{ -// tidb::mock_upstream::MockTopSqlPubSubServer, -// tikv::mock_upstream::MockResourceMeteringPubSubServer, -// }, -// }; -// use super::*; -// use vector::test_util::{ -// components::{run_and_assert_source_compliance, SOURCE_TAGS}, -// next_addr, -// }; -// use vector::tls::{ -// TEST_PEM_CA_PATH, TEST_PEM_CLIENT_CRT_PATH, TEST_PEM_CLIENT_KEY_PATH, TEST_PEM_CRT_PATH, -// TEST_PEM_KEY_PATH, -// }; - -// use tonic::transport::{Certificate, Identity, ServerTlsConfig}; - -// #[tokio::test] -// async fn test_topsql_scrape_tidb() { -// let address = next_addr(); -// let config = TopSQLPubSubConfig { -// instance: address.to_string(), -// instance_type: INSTANCE_TYPE_TIDB.to_owned(), -// tls: None, -// retry_delay_seconds: default_retry_delay(), -// }; - -// check_topsql_scrape_tidb(address, config, None).await; -// } - -// #[tokio::test] -// async fn test_topsql_scrape_tidb_tls() { -// let address = next_addr(); -// let config = TopSQLPubSubConfig { -// instance: format!("localhost:{}", address.port()), -// instance_type: INSTANCE_TYPE_TIDB.to_owned(), -// tls: Some(TlsConfig { -// ca_file: Some(TEST_PEM_CA_PATH.into()), -// crt_file: Some(TEST_PEM_CLIENT_CRT_PATH.into()), -// key_file: Some(TEST_PEM_CLIENT_KEY_PATH.into()), -// ..Default::default() -// }), -// retry_delay_seconds: default_retry_delay(), -// }; - -// let ca = read(TEST_PEM_CA_PATH).unwrap(); -// let crt = read(TEST_PEM_CRT_PATH).unwrap(); -// let key = read(TEST_PEM_KEY_PATH).unwrap(); - -// let tls_config = ServerTlsConfig::default() -// .client_ca_root(Certificate::from_pem(ca)) -// .identity(Identity::from_pem(crt, key)); - -// check_topsql_scrape_tidb(address, config, Some(tls_config)).await; -// } - -// #[tokio::test] -// async fn test_topsql_scrape_tikv() { -// let address = next_addr(); -// let config = TopSQLPubSubConfig { -// instance: address.to_string(), -// instance_type: INSTANCE_TYPE_TIKV.to_owned(), -// tls: None, -// retry_delay_seconds: default_retry_delay(), -// }; - -// check_topsql_scrape_tikv(address, config, None).await; -// } - -// #[tokio::test] -// async fn test_topsql_scrape_tikv_tls() { -// let address = next_addr(); -// let config = TopSQLPubSubConfig { -// instance: format!("localhost:{}", address.port()), -// instance_type: INSTANCE_TYPE_TIKV.to_owned(), -// tls: Some(TlsConfig { -// ca_file: Some(TEST_PEM_CA_PATH.into()), -// crt_file: Some(TEST_PEM_CLIENT_CRT_PATH.into()), -// key_file: Some(TEST_PEM_CLIENT_KEY_PATH.into()), -// ..Default::default() -// }), -// retry_delay_seconds: default_retry_delay(), -// }; - -// let ca = read(TEST_PEM_CA_PATH).unwrap(); -// let crt = read(TEST_PEM_CRT_PATH).unwrap(); -// let key = read(TEST_PEM_KEY_PATH).unwrap(); - -// let tls_config = ServerTlsConfig::default() -// .client_ca_root(Certificate::from_pem(ca)) -// .identity(Identity::from_pem(crt, key)); - -// check_topsql_scrape_tikv(address, config, Some(tls_config)).await; -// } - -// async fn check_topsql_scrape_tidb( -// address: SocketAddr, -// config: TopSQLPubSubConfig, -// tls_config: Option, -// ) { -// tokio::spawn(MockTopSqlPubSubServer::run(address, tls_config)); - -// // wait for server to set up -// tokio::time::sleep(Duration::from_secs(1)).await; - -// let events = -// run_and_assert_source_compliance(config, Duration::from_secs(1), &SOURCE_TAGS).await; -// assert!(!events.is_empty()); -// } - -// async fn check_topsql_scrape_tikv( -// address: SocketAddr, -// config: TopSQLPubSubConfig, -// tls_config: Option, -// ) { -// tokio::spawn(MockResourceMeteringPubSubServer::run(address, tls_config)); - -// // wait for server to set up -// tokio::time::sleep(Duration::from_secs(1)).await; - -// let events = -// run_and_assert_source_compliance(config, Duration::from_secs(1), &SOURCE_TAGS).await; -// assert!(!events.is_empty()); -// } -// } diff --git a/extensions/topsql/src/upstream/tidb/parser.rs b/extensions/topsql/src/upstream/tidb/parser.rs deleted file mode 100644 index cf544f7..0000000 --- a/extensions/topsql/src/upstream/tidb/parser.rs +++ /dev/null @@ -1,130 +0,0 @@ -use std::collections::BTreeSet; - -use chrono::Utc; -use vector::event::LogEvent; - -use crate::upstream::consts::{ - INSTANCE_TYPE_TIDB, INSTANCE_TYPE_TIKV, LABEL_ENCODED_NORMALIZED_PLAN, LABEL_IS_INTERNAL_SQL, - LABEL_NAME, LABEL_NORMALIZED_PLAN, LABEL_NORMALIZED_SQL, LABEL_PLAN_DIGEST, LABEL_SQL_DIGEST, - METRIC_NAME_CPU_TIME_MS, METRIC_NAME_PLAN_META, METRIC_NAME_SQL_META, - METRIC_NAME_STMT_DURATION_COUNT, METRIC_NAME_STMT_DURATION_SUM_NS, METRIC_NAME_STMT_EXEC_COUNT, -}; -use crate::upstream::parser::{Buf, UpstreamEventParser}; -use crate::upstream::tidb::proto::top_sql_sub_response::RespOneof; -use crate::upstream::tidb::proto::{PlanMeta, SqlMeta, TopSqlRecord, TopSqlSubResponse}; -use crate::upstream::utils::make_metric_like_log_event; - -pub struct TopSqlSubResponseParser; - -impl UpstreamEventParser for TopSqlSubResponseParser { - type UpstreamEvent = TopSqlSubResponse; - - fn parse(response: Self::UpstreamEvent, instance: String) -> Vec { - match response.resp_oneof { - Some(RespOneof::Record(record)) => Self::parse_tidb_record(record, instance), - Some(RespOneof::SqlMeta(sql_meta)) => Self::parse_tidb_sql_meta(sql_meta), - Some(RespOneof::PlanMeta(plan_meta)) => Self::parse_tidb_plan_meta(plan_meta), - None => vec![], - } - } -} - -impl TopSqlSubResponseParser { - fn parse_tidb_record(record: TopSqlRecord, instance: String) -> Vec { - let mut logs = vec![]; - - let mut buf = Buf::default(); - buf.instance(instance) - .instance_type(INSTANCE_TYPE_TIDB) - .sql_digest(hex::encode_upper(record.sql_digest)) - .plan_digest(hex::encode_upper(record.plan_digest)); - - macro_rules! append { - ($( ($label_name:expr, $item_name:tt), )* ) => { - $( - buf.label_name($label_name) - .points(record.items.iter().filter_map(|item| { - if item.$item_name > 0 { - Some((item.timestamp_sec, item.$item_name as f64)) - } else { - None - } - })); - if let Some(event) = buf.build_event() { - logs.push(event); - } - )* - }; - } - append!( - // cpu_time_ms - (METRIC_NAME_CPU_TIME_MS, cpu_time_ms), - // stmt_exec_count - (METRIC_NAME_STMT_EXEC_COUNT, stmt_exec_count), - // stmt_duration_sum_ns - (METRIC_NAME_STMT_DURATION_SUM_NS, stmt_duration_sum_ns), - // stmt_duration_count - (METRIC_NAME_STMT_DURATION_COUNT, stmt_duration_count), - ); - - // stmt_kv_exec_count - buf.label_name(METRIC_NAME_STMT_EXEC_COUNT) - .instance_type(INSTANCE_TYPE_TIKV); - - let tikv_instances = record - .items - .iter() - .flat_map(|item| item.stmt_kv_exec_count.keys()) - .collect::>(); - for tikv_instance in tikv_instances { - buf.instance(tikv_instance) - .points(record.items.iter().filter_map(|item| { - let count = item - .stmt_kv_exec_count - .get(tikv_instance) - .copied() - .unwrap_or_default(); - - if count > 0 { - Some((item.timestamp_sec, count as f64)) - } else { - None - } - })); - if let Some(event) = buf.build_event() { - logs.push(event); - } - } - - logs - } - - fn parse_tidb_sql_meta(sql_meta: SqlMeta) -> Vec { - vec![make_metric_like_log_event( - &[ - (LABEL_NAME, METRIC_NAME_SQL_META.to_owned()), - (LABEL_SQL_DIGEST, hex::encode_upper(sql_meta.sql_digest)), - (LABEL_NORMALIZED_SQL, sql_meta.normalized_sql), - (LABEL_IS_INTERNAL_SQL, sql_meta.is_internal_sql.to_string()), - ], - &[Utc::now()], - &[1.0], - )] - } - - fn parse_tidb_plan_meta(plan_meta: PlanMeta) -> Vec { - vec![make_metric_like_log_event( - &[ - (LABEL_NAME, METRIC_NAME_PLAN_META.to_owned()), - (LABEL_PLAN_DIGEST, hex::encode_upper(plan_meta.plan_digest)), - (LABEL_NORMALIZED_PLAN, plan_meta.normalized_plan), - ( - LABEL_ENCODED_NORMALIZED_PLAN, - plan_meta.encoded_normalized_plan, - ), - ], - &[Utc::now()], - &[1.0], - )] - } -} diff --git a/extensions/topsql/src/upstream/tikv/parser.rs b/extensions/topsql/src/upstream/tikv/parser.rs deleted file mode 100644 index 5b757d5..0000000 --- a/extensions/topsql/src/upstream/tikv/parser.rs +++ /dev/null @@ -1,95 +0,0 @@ -use prost::Message; -use vector::event::LogEvent; - -use crate::upstream::consts::{ - INSTANCE_TYPE_TIKV, KV_TAG_LABEL_INDEX, KV_TAG_LABEL_ROW, KV_TAG_LABEL_UNKNOWN, - METRIC_NAME_CPU_TIME_MS, METRIC_NAME_READ_KEYS, METRIC_NAME_WRITE_KEYS, -}; -use crate::upstream::parser::{Buf, UpstreamEventParser}; -use crate::upstream::tidb::proto::ResourceGroupTag; -use crate::upstream::tikv::proto::resource_usage_record::RecordOneof; -use crate::upstream::tikv::proto::{GroupTagRecord, ResourceUsageRecord}; - -pub struct ResourceUsageRecordParser; - -impl UpstreamEventParser for ResourceUsageRecordParser { - type UpstreamEvent = ResourceUsageRecord; - - fn parse(response: Self::UpstreamEvent, instance: String) -> Vec { - match response.record_oneof { - Some(RecordOneof::Record(record)) => Self::parse_tikv_record(record, instance), - None => vec![], - } - } -} - -impl ResourceUsageRecordParser { - fn parse_tikv_record(record: GroupTagRecord, instance: String) -> Vec { - let decoded = Self::decode_tag(record.resource_group_tag.as_slice()); - if decoded.is_none() { - return vec![]; - } - - let mut logs = vec![]; - - let (sql_digest, plan_digest, tag_label) = decoded.unwrap(); - let mut buf = Buf::default(); - buf.instance(instance) - .instance_type(INSTANCE_TYPE_TIKV) - .sql_digest(sql_digest) - .plan_digest(plan_digest) - .tag_label(tag_label); - - macro_rules! append { - ($( ($label_name:expr, $item_name:tt), )* ) => { - $( - buf.label_name($label_name) - .points(record.items.iter().filter_map(|item| { - if item.$item_name > 0 { - Some((item.timestamp_sec, item.$item_name as f64)) - } else { - None - } - })); - if let Some(event) = buf.build_event() { - logs.push(event); - } - )* - }; - } - append!( - // cpu_time_ms - (METRIC_NAME_CPU_TIME_MS, cpu_time_ms), - // read_keys - (METRIC_NAME_READ_KEYS, read_keys), - // write_keys - (METRIC_NAME_WRITE_KEYS, write_keys), - ); - - logs - } - - fn decode_tag(tag: &[u8]) -> Option<(String, String, String)> { - match ResourceGroupTag::decode(tag) { - Ok(resource_tag) => { - if resource_tag.sql_digest.is_none() { - None - } else { - Some(( - hex::encode_upper(resource_tag.sql_digest.unwrap()), - hex::encode_upper(resource_tag.plan_digest.unwrap_or_default()), - match resource_tag.label { - Some(1) => KV_TAG_LABEL_ROW.to_owned(), - Some(2) => KV_TAG_LABEL_INDEX.to_owned(), - _ => KV_TAG_LABEL_UNKNOWN.to_owned(), - }, - )) - } - } - Err(error) => { - warn!(message = "Failed to decode resource tag", tag = %hex::encode(tag), %error); - None - } - } - } -} diff --git a/extensions/vm-import/Cargo.toml b/extensions/vm-import/Cargo.toml deleted file mode 100644 index a7bf931..0000000 --- a/extensions/vm-import/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "vm-import" -version = "0.0.1" -edition = "2021" -publish = false - -[dependencies] -vector = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false } - -bytes = { version = "1.1.0", default-features = false, features = ["serde"] } -flate2 = { version = "1.0.24", default-features = false, features = ["default"] } -futures-util = { version = "0.3.21", default-features = false } -http = { version = "0.2.8", default-features = false } -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.81", default-features = false, features = ["raw_value"] } -tracing = { version = "0.1.34", default-features = false } -async-trait = { version = "0.1.56", default-features = false } -toml = { version = "0.5.9", default-features = false } -typetag = { version = "0.1.8", default-features = false } -hyper = { version = "0.14.19", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } - -[dev-dependencies] -topsql = { path = "../topsql", features = ["vm-test"] } diff --git a/extensions/vm-import/src/lib.rs b/extensions/vm-import/src/lib.rs deleted file mode 100644 index 7b7404f..0000000 --- a/extensions/vm-import/src/lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -#[macro_use] -extern crate tracing; - -mod config; -mod encoder; -mod partition; -mod sink; - -pub use config::VMImportConfig; - -// #[cfg(test)] -// mod tests { -// use std::{collections::BTreeMap, future::ready}; - -// use chrono::Utc; -// use futures_util::{stream, TryFutureExt}; -// use http::Response; -// use hyper::{ -// service::{make_service_fn, service_fn}, -// Server, -// }; -// use lookup::path; -// use vector_core::{event::LogEvent, Error}; - -// use super::*; -// use crate::{ -// config::SinkContext, -// test_util::{ -// components::{run_and_assert_sink_compliance, HTTP_SINK_TAGS}, -// next_addr, test_generate_config, -// }, -// }; - -// #[test] -// fn generate_config() { -// test_generate_config::(); -// } - -// #[tokio::test] -// async fn send_event() { -// let service = -// service_fn( -// |_| async move { Ok::<_, hyper::Error>(Response::new(hyper::Body::empty())) }, -// ); - -// let addr = next_addr(); -// let server = Server::bind(&addr) -// .serve(make_service_fn(move |_| ready(Ok::<_, Error>(service)))) -// .map_err(|error| panic!("Server error: {}", error)); - -// tokio::spawn(server); - -// let config = VMImportConfig { -// endpoint: format!("http://{}", addr), -// batch: Default::default(), -// request: Default::default(), -// tls: None, -// }; -// let cx = SinkContext::new_test(); -// let (sink, _) = config.build(cx).await.unwrap(); - -// let mut labels = value::Value::from(BTreeMap::default()); -// labels.insert("__name__", "cpu"); -// let mut timestamps = value::Value::from(Vec::::default()); -// timestamps.insert(path!(0), Utc::now()); -// let mut values = value::Value::from(Vec::::default()); -// values.insert(path!(0), 1.0); -// let mut log = LogEvent::from_map(Default::default(), Default::default()); -// log.insert("labels", labels); -// log.insert("timestamps", timestamps); -// log.insert("values", values); -// run_and_assert_sink_compliance(sink, stream::once(ready(log)), &HTTP_SINK_TAGS).await; -// } -// } diff --git a/packages/common/Cargo.toml b/packages/common/Cargo.toml deleted file mode 100644 index 1ab63b3..0000000 --- a/packages/common/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "common" -version = "0.0.1" -edition = "2021" -publish = false - -[dependencies] -vector_core = { git = "https://github.com/vectordotdev/vector", tag = "v0.23.3", default-features = false, features = ["vrl"] } - -serde = { version = "1.0.137", default-features = false, features = ["derive"] } -chrono = { version = "0.4.19", default-features = false, features = ["clock", "serde"] } -tracing = { version = "0.1.34", default-features = false } -serde_json = { version = "1.0.81", default-features = false, features = ["std", "raw_value"] } diff --git a/packages/common/src/lib.rs b/packages/common/src/lib.rs deleted file mode 100644 index 5f1e05b..0000000 --- a/packages/common/src/lib.rs +++ /dev/null @@ -1,4 +0,0 @@ -#[macro_use] -extern crate tracing; - -pub mod checkpointer; diff --git a/extensions/topsql/proto/resource_tag.proto b/proto/resource_tag.proto similarity index 100% rename from extensions/topsql/proto/resource_tag.proto rename to proto/resource_tag.proto diff --git a/extensions/topsql/proto/tidb.proto b/proto/tidb.proto similarity index 100% rename from extensions/topsql/proto/tidb.proto rename to proto/tidb.proto diff --git a/extensions/topsql/proto/tikv.proto b/proto/tikv.proto similarity index 100% rename from extensions/topsql/proto/tikv.proto rename to proto/tikv.proto diff --git a/rust-toolchain b/rust-toolchain index 91951fd..6b4de0a 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.61.0 +1.83.0 diff --git a/scripts/cross/aarch64-unknown-linux-gnu.dockerfile b/scripts/cross/aarch64-unknown-linux-gnu.dockerfile index 9eeda3a..67e41c7 100644 --- a/scripts/cross/aarch64-unknown-linux-gnu.dockerfile +++ b/scripts/cross/aarch64-unknown-linux-gnu.dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:0.2.4 +FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh diff --git a/scripts/cross/aarch64-unknown-linux-musl.dockerfile b/scripts/cross/aarch64-unknown-linux-musl.dockerfile index cc1c200..77ad878 100644 --- a/scripts/cross/aarch64-unknown-linux-musl.dockerfile +++ b/scripts/cross/aarch64-unknown-linux-musl.dockerfile @@ -1,7 +1,9 @@ -FROM ghcr.io/cross-rs/aarch64-unknown-linux-musl:0.2.4 +FROM ghcr.io/cross-rs/aarch64-unknown-linux-musl:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh # Stick `libstdc++` somewhere it can be found other than it's normal location, otherwise we end up using the wrong version # of _other_ libraries, which ultimately just breaks linking. We'll set `/lib/native-libs` as a search path in `.cargo/config.toml`. diff --git a/scripts/cross/armv7-unknown-linux-gnueabihf.dockerfile b/scripts/cross/armv7-unknown-linux-gnueabihf.dockerfile index 27531a1..f9554a6 100644 --- a/scripts/cross/armv7-unknown-linux-gnueabihf.dockerfile +++ b/scripts/cross/armv7-unknown-linux-gnueabihf.dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:0.2.4 +FROM ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh diff --git a/scripts/cross/armv7-unknown-linux-musleabihf.dockerfile b/scripts/cross/armv7-unknown-linux-musleabihf.dockerfile index 5d74d61..e1f935a 100644 --- a/scripts/cross/armv7-unknown-linux-musleabihf.dockerfile +++ b/scripts/cross/armv7-unknown-linux-musleabihf.dockerfile @@ -1,7 +1,9 @@ -FROM ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:0.2.4 +FROM ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh # Stick `libstdc++` somewhere it can be found other than it's normal location, otherwise we end up using the wrong version # of _other_ libraries, which ultimately just breaks linking. We'll set `/lib/native-libs` as a search path in `.cargo/config.toml`. diff --git a/scripts/cross/bootstrap-ubuntu.sh b/scripts/cross/bootstrap-ubuntu.sh index 2aa5fd9..802e806 100755 --- a/scripts/cross/bootstrap-ubuntu.sh +++ b/scripts/cross/bootstrap-ubuntu.sh @@ -1,8 +1,14 @@ #!/bin/sh +set -o errexit + +echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries apt-get update +apt-get upgrade -y + apt-get install -y \ apt-transport-https \ + gnupg \ wget # we need LLVM >= 3.9 for onig_sys/bindgen @@ -15,9 +21,10 @@ EOF wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key| apt-key add - apt-get update +apt-get upgrade -y # needed by onig_sys apt-get install -y \ libclang1-9 \ llvm-9 \ - clang + unzip diff --git a/scripts/cross/install-protoc.sh b/scripts/cross/install-protoc.sh new file mode 100755 index 0000000..3e65820 --- /dev/null +++ b/scripts/cross/install-protoc.sh @@ -0,0 +1,66 @@ +#! /usr/bin/env bash +set -o errexit -o verbose + +# A parameter can be optionally passed to this script to specify an alternative +# location to install protoc. Default is /usr/bin. +readonly INSTALL_PATH=${1:-"/usr/bin"} + +if [[ -n $1 ]] +then + mkdir -p "${INSTALL_PATH}" +fi + +# Protoc. No guard because we want to override Ubuntu's old version in +# case it is already installed by a dependency. +# +# Basis of script copied from: +# https://github.com/paxosglobal/asdf-protoc/blob/46c2f9349b8420144b197cfd064a9677d21cfb0c/bin/install + +# shellcheck disable=SC2155 +readonly TMP_DIR="$(mktemp -d -t "protoc_XXXX")" +trap 'rm -rf "${TMP_DIR?}"' EXIT + +get_platform() { + local os + os=$(uname) + if [[ "${os}" == "Darwin" ]]; then + echo "osx" + elif [[ "${os}" == "Linux" ]]; then + echo "linux" + else + >&2 echo "unsupported os: ${os}" && exit 1 + fi +} + +get_arch() { + local os + local arch + os=$(uname) + arch=$(uname -m) + # On ARM Macs, uname -m returns "arm64", but in protoc releases this architecture is called "aarch_64" + if [[ "${os}" == "Darwin" && "${arch}" == "arm64" ]]; then + echo "aarch_64" + elif [[ "${os}" == "Linux" && "${arch}" == "aarch64" ]]; then + echo "aarch_64" + else + echo "${arch}" + fi +} + +install_protoc() { + local version=$1 + local install_path=$2 + + local base_url="https://github.com/protocolbuffers/protobuf/releases/download" + local url + url="${base_url}/v${version}/protoc-${version}-$(get_platform)-$(get_arch).zip" + local download_path="${TMP_DIR}/protoc.zip" + + echo "Downloading ${url}" + curl -fsSL "${url}" -o "${download_path}" + + unzip -qq "${download_path}" -d "${TMP_DIR}" + mv --force --verbose "${TMP_DIR}/bin/protoc" "${install_path}" +} + +install_protoc "3.19.5" "${INSTALL_PATH}/protoc" diff --git a/scripts/cross/x86_64-unknown-linux-gnu.dockerfile b/scripts/cross/x86_64-unknown-linux-gnu.dockerfile index 2832bcc..f5adc36 100644 --- a/scripts/cross/x86_64-unknown-linux-gnu.dockerfile +++ b/scripts/cross/x86_64-unknown-linux-gnu.dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/cross-rs/x86_64-unknown-linux-gnu:0.2.4 +FROM ghcr.io/cross-rs/x86_64-unknown-linux-gnu:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh diff --git a/scripts/cross/x86_64-unknown-linux-musl.dockerfile b/scripts/cross/x86_64-unknown-linux-musl.dockerfile index e045b74..9ac47a6 100644 --- a/scripts/cross/x86_64-unknown-linux-musl.dockerfile +++ b/scripts/cross/x86_64-unknown-linux-musl.dockerfile @@ -1,7 +1,9 @@ -FROM ghcr.io/cross-rs/x86_64-unknown-linux-musl:0.2.4 +FROM ghcr.io/cross-rs/x86_64-unknown-linux-musl:edge COPY bootstrap-ubuntu.sh . +COPY install-protoc.sh . RUN ./bootstrap-ubuntu.sh +RUN ./install-protoc.sh # Stick `libstdc++` somewhere it can be found other than it's normal location, otherwise we end up using the wrong version # of _other_ libraries, which ultimately just breaks linking. We'll set `/lib/native-libs` as a search path in `.cargo/config.toml`. diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile index 0ec35d9..58437ea 100644 --- a/scripts/docker/Dockerfile +++ b/scripts/docker/Dockerfile @@ -1,9 +1,9 @@ -FROM docker.io/debian:bullseye-slim -RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates tzdata systemd +FROM docker.io/debian:bullseye +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates tzdata systemd curl binutils ARG TARGETARCH COPY vector-$TARGETARCH /usr/bin/vector -COPY vector.toml /etc/vector/vector.toml +# COPY vector.toml /etc/vector/vector.toml ENV VECTOR_LOG="info" diff --git a/scripts/integration/tiup-playground.dockerfile b/scripts/integration/tiup-playground.dockerfile index bf970e8..b228538 100644 --- a/scripts/integration/tiup-playground.dockerfile +++ b/scripts/integration/tiup-playground.dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 +FROM ubuntu:devel RUN apt-get update && apt-get install -y \ curl diff --git a/scripts/release-docker.sh b/scripts/release-docker.sh index f695e9f..d04d482 100755 --- a/scripts/release-docker.sh +++ b/scripts/release-docker.sh @@ -33,8 +33,8 @@ trap cleanup EXIT # linux/arm/v7 -> arm cp target/x86_64-unknown-linux-gnu/release/vector "$WORK_DIR"/vector-amd64 cp target/aarch64-unknown-linux-gnu/release/vector "$WORK_DIR"/vector-arm64 -cp target/armv7-unknown-linux-gnueabihf/release/vector "$WORK_DIR"/vector-arm -cp config/vector.toml "$WORK_DIR" +# cp target/armv7-unknown-linux-gnueabihf/release/vector "$WORK_DIR"/vector-arm +# cp config/vector.toml "$WORK_DIR" VERSION="${VECTOR_VERSION:-"$(scripts/version.sh)"}" REPO="${REPO:-"tidbcloud/vector"}" @@ -43,6 +43,7 @@ BASE=debian TAG="${TAG:-$REPO:$VERSION-$BASE}" DOCKERFILE="scripts/docker/Dockerfile" -PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7" +# PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7" +PLATFORMS="linux/amd64,linux/arm64" echo "Building docker image: $TAG for $PLATFORMS" docker buildx build --push --platform="$PLATFORMS" -t "$TAG" -f "$DOCKERFILE" "$WORK_DIR" diff --git a/packages/common/src/checkpointer.rs b/src/common/checkpointer.rs similarity index 99% rename from packages/common/src/checkpointer.rs rename to src/common/checkpointer.rs index 89e7941..ccd49be 100644 --- a/packages/common/src/checkpointer.rs +++ b/src/common/checkpointer.rs @@ -5,7 +5,7 @@ use std::{fs, io}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; -use vector_core::event::Event; +use vector_lib::event::Event; const TMP_FILE_NAME: &str = "checkpoints.new.json"; const CHECKPOINT_FILE_NAME: &str = "checkpoints.json"; diff --git a/src/common/mod.rs b/src/common/mod.rs new file mode 100644 index 0000000..e48e63b --- /dev/null +++ b/src/common/mod.rs @@ -0,0 +1 @@ +pub mod checkpointer; diff --git a/src/main.rs b/src/main.rs index ec8230e..5fda32b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,51 +1,18 @@ -#![deny(warnings)] +#[macro_use] +extern crate tracing; -use vector::app::Application; -#[allow(unused_imports)] -use vector::config::{SinkDescription, SourceDescription}; +use std::process::ExitCode; -// Extensions -#[cfg(feature = "filename")] -inventory::submit! { - SourceDescription::new::("filename") -} -#[cfg(feature = "aws-s3-upload-file")] -inventory::submit! { - SinkDescription::new::("aws_s3_upload_file") -} -#[cfg(feature = "gcp-cloud-storage-upload-file")] -inventory::submit! { - SinkDescription::new::("gcp_cloud_storage_upload_file") -} -#[cfg(feature = "topsql")] -inventory::submit! { - SourceDescription::new::("topsql") -} -#[cfg(feature = "vm-import")] -inventory::submit! { - SinkDescription::new::("vm_import") -} +use vector::{app::Application, extra_context::ExtraContext}; -#[cfg(unix)] -fn main() { - let app = Application::prepare().unwrap_or_else(|code| { - std::process::exit(code); - }); - - app.run(); -} +mod common; +mod sinks; +mod sources; -#[cfg(windows)] -pub fn main() { - // We need to be able to run vector in User Interactive mode. We first try - // to run vector as a service. If we fail, we consider that we are in - // interactive mode and then fallback to console mode. See - // https://docs.microsoft.com/en-us/dotnet/api/system.environment.userinteractive?redirectedfrom=MSDN&view=netcore-3.1#System_Environment_UserInteractive - vector::vector_windows::run().unwrap_or_else(|_| { - let app = Application::prepare().unwrap_or_else(|code| { - std::process::exit(code); - }); - - app.run(); - }); +#[cfg(unix)] +fn main() -> ExitCode { + let exit_code = Application::run(ExtraContext::default()) + .code() + .unwrap_or(exitcode::UNAVAILABLE) as u8; + ExitCode::from(exit_code) } diff --git a/extensions/aws-s3-upload-file/src/etag_calculator.rs b/src/sinks/aws_s3_upload_file/etag_calculator.rs similarity index 93% rename from extensions/aws-s3-upload-file/src/etag_calculator.rs rename to src/sinks/aws_s3_upload_file/etag_calculator.rs index 1dc9ce2..4a1b875 100644 --- a/extensions/aws-s3-upload-file/src/etag_calculator.rs +++ b/src/sinks/aws_s3_upload_file/etag_calculator.rs @@ -1,6 +1,7 @@ use std::io; use std::path::Path; +use base64::Engine; use md5::Digest; use tokio::fs::File; use tokio::io::AsyncReadExt; @@ -23,7 +24,7 @@ impl EtagCalculator { } pub fn content_md5(chunk: &[u8]) -> String { - base64::encode(md5::Md5::digest(chunk)) + base64::prelude::BASE64_STANDARD.encode(md5::Md5::digest(chunk)) } pub async fn file(&mut self, filename: impl AsRef) -> io::Result { @@ -52,7 +53,7 @@ impl EtagCalculator { } if self.concat_md5.is_empty() { - let digest: [u8; 16] = md5::Md5::digest(&[]).into(); + let digest: [u8; 16] = md5::Md5::digest([]).into(); self.concat_md5.extend_from_slice(&digest); } diff --git a/extensions/aws-s3-upload-file/src/config.rs b/src/sinks/aws_s3_upload_file/mod.rs similarity index 77% rename from extensions/aws-s3-upload-file/src/config.rs rename to src/sinks/aws_s3_upload_file/mod.rs index 0aedb92..da5ece6 100644 --- a/extensions/aws-s3-upload-file/src/config.rs +++ b/src/sinks/aws_s3_upload_file/mod.rs @@ -2,35 +2,58 @@ use std::path::PathBuf; use std::time::Duration; use aws_sdk_s3::Client as S3Client; -use common::checkpointer::Checkpointer; -use serde::{Deserialize, Serialize}; -use vector::aws::{AwsAuthentication, RegionOrEndpoint}; -use vector::config::{AcknowledgementsConfig, GenerateConfig, SinkConfig, SinkContext}; -use vector::sinks::s3_common::config::S3Options; -use vector::sinks::s3_common::service::S3Service; -use vector::sinks::{s3_common, Healthcheck}; -use vector::tls::TlsConfig; -use vector_core::config::proxy::ProxyConfig; -use vector_core::config::{DataType, Input}; -use vector_core::sink::VectorSink; - -use crate::processor::S3UploadFileSink; - -#[derive(Deserialize, Serialize, Debug, Clone)] +use vector::{ + aws::{AwsAuthentication, RegionOrEndpoint}, + config::{GenerateConfig, SinkConfig, SinkContext}, + sinks::{ + s3_common::{self, config::S3Options, service::S3Service}, + Healthcheck, + }, +}; +use vector_config::NamedComponent; +use vector_lib::{ + config::proxy::ProxyConfig, + config::{AcknowledgementsConfig, DataType, Input}, + configurable::configurable_component, + sink::VectorSink, + tls::TlsConfig, +}; + +use crate::common::checkpointer::Checkpointer; +use crate::sinks::aws_s3_upload_file::processor::S3UploadFileSink; + +mod etag_calculator; +mod processor; +mod uploader; + +/// PLACEHOLDER +#[configurable_component(sink("aws_s3_upload_file"))] +#[derive(Debug, Clone)] #[serde(deny_unknown_fields)] pub struct S3UploadFileConfig { + /// PLACEHOLDER pub bucket: String, + + /// PLACEHOLDER #[serde(flatten)] pub options: S3Options, + + /// PLACEHOLDER #[serde(flatten)] pub region: RegionOrEndpoint, + + /// PLACEHOLDER pub tls: Option, + + /// PLACEHOLDER #[serde(default)] pub auth: AwsAuthentication, + + /// PLACEHOLDER #[serde( default, deserialize_with = "vector::serde::bool_or_struct", - skip_serializing_if = "vector::serde::skip_serializing_if_default" + skip_serializing_if = "vector::serde::is_default" )] pub acknowledgements: AcknowledgementsConfig, @@ -88,12 +111,8 @@ impl SinkConfig for S3UploadFileConfig { Input::new(DataType::Log) } - fn sink_type(&self) -> &'static str { - "aws_s3_upload_file" - } - - fn acknowledgements(&self) -> Option<&AcknowledgementsConfig> { - Some(&self.acknowledgements) + fn acknowledgements(&self) -> &AcknowledgementsConfig { + &self.acknowledgements } } @@ -105,7 +124,7 @@ impl S3UploadFileConfig { ) -> vector::Result { let data_dir = cx .globals - .resolve_and_make_data_subdir(self.data_dir.as_ref(), self.sink_type())?; + .resolve_and_make_data_subdir(self.data_dir.as_ref(), self.get_component_name())?; let mut checkpointer = Checkpointer::new(data_dir); checkpointer.read_checkpoints(); diff --git a/extensions/aws-s3-upload-file/src/processor.rs b/src/sinks/aws_s3_upload_file/processor.rs similarity index 90% rename from extensions/aws-s3-upload-file/src/processor.rs rename to src/sinks/aws_s3_upload_file/processor.rs index 42c38ee..558d918 100644 --- a/extensions/aws-s3-upload-file/src/processor.rs +++ b/src/sinks/aws_s3_upload_file/processor.rs @@ -2,19 +2,20 @@ use std::collections::HashSet; use std::io; use std::time::{Duration, SystemTime}; -use common::checkpointer::{Checkpointer, UploadKey}; use futures::stream::BoxStream; use futures_util::StreamExt; use tokio_util::time::DelayQueue; -use vector::emit; -use vector::event::Finalizable; -use vector::sinks::s3_common::config::S3Options; -use vector::sinks::s3_common::service::S3Service; -use vector_core::event::{Event, EventStatus}; -use vector_core::internal_event::EventsSent; -use vector_core::sink::StreamSink; +use vector::sinks::s3_common::{config::S3Options, service::S3Service}; +use vector_lib::{ + event::Event, + finalization::{EventStatus, Finalizable}, + internal_event::{CountByteSize, EventsSent, InternalEventHandle}, + register, + sink::StreamSink, +}; -use crate::uploader::S3Uploader; +use crate::common::checkpointer::{Checkpointer, UploadKey}; +use crate::sinks::aws_s3_upload_file::uploader::S3Uploader; pub struct S3UploadFileSink { pub service: S3Service, @@ -120,11 +121,9 @@ impl StreamSink for S3UploadFileSink { ); } finalizers.update_status(EventStatus::Delivered); - emit!(EventsSent { - count: response.count, - byte_size: response.events_byte_size, + register!(EventsSent { output: None, - }); + }).emit(CountByteSize(response.count, response.events_byte_size.into())); checkpointer.update(upload_key, upload_time, expire_after); } Err(error) => { diff --git a/extensions/aws-s3-upload-file/src/uploader.rs b/src/sinks/aws_s3_upload_file/uploader.rs similarity index 96% rename from extensions/aws-s3-upload-file/src/uploader.rs rename to src/sinks/aws_s3_upload_file/uploader.rs index b0c74b2..0b0c201 100644 --- a/extensions/aws-s3-upload-file/src/uploader.rs +++ b/src/sinks/aws_s3_upload_file/uploader.rs @@ -1,14 +1,14 @@ use std::io; -use aws_sdk_s3::model::{CompletedMultipartUpload, CompletedPart}; -use aws_sdk_s3::types::ByteStream; +use aws_sdk_s3::types::{CompletedMultipartUpload, CompletedPart}; use aws_sdk_s3::Client as S3Client; -use common::checkpointer::UploadKey; +use aws_smithy_types::byte_stream::ByteStream; use tokio::fs::File; use tokio::io::AsyncReadExt; use vector::sinks::s3_common::config::S3Options; -use crate::etag_calculator::EtagCalculator; +use crate::common::checkpointer::UploadKey; +use crate::sinks::aws_s3_upload_file::etag_calculator::EtagCalculator; // limit the chunk size to 8MB to avoid OOM const S3_MULTIPART_UPLOAD_CHUNK_SIZE: usize = 8 * 1024 * 1024; @@ -115,7 +115,7 @@ impl S3Uploader { .set_grant_write_acp(self.options.grant_write_acp.clone()) .set_server_side_encryption(self.options.server_side_encryption.map(Into::into)) .set_ssekms_key_id(self.options.ssekms_key_id.clone()) - .set_storage_class(self.options.storage_class.map(Into::into)) + .set_storage_class(Some(self.options.storage_class.into())) .set_tagging(tagging) .content_md5(content_md5) .send() @@ -218,7 +218,7 @@ impl<'a, 'b> MultipartUploader<'a, 'b> { .set_grant_write_acp(self.options.grant_write_acp.clone()) .set_server_side_encryption(self.options.server_side_encryption.map(Into::into)) .set_ssekms_key_id(self.options.ssekms_key_id.clone()) - .set_storage_class(self.options.storage_class.map(Into::into)) + .set_storage_class(Some(self.options.storage_class.into())) .set_tagging(tagging) .send() .await diff --git a/src/sinks/azure_blob_upload_file/mod.rs b/src/sinks/azure_blob_upload_file/mod.rs new file mode 100644 index 0000000..0b94fe6 --- /dev/null +++ b/src/sinks/azure_blob_upload_file/mod.rs @@ -0,0 +1,166 @@ +use std::path::PathBuf; +use std::sync::Arc; +use std::time::Duration; + +use azure_storage_blobs::prelude::*; +use vector::{ + config::{GenerateConfig, SinkConfig, SinkContext}, + sinks::azure_common, + sinks::Healthcheck, +}; +use vector_config::NamedComponent; +use vector_lib::{ + config::{AcknowledgementsConfig, DataType, Input}, + configurable::configurable_component, + sink::VectorSink, +}; + +use crate::common::checkpointer::Checkpointer; +use crate::sinks::azure_blob_upload_file::processor::AzureBlobUploadFileSink; + +mod processor; +mod uploader; + +/// PLACEHOLDER +#[configurable_component(sink("azure_blob_upload_file"))] +#[derive(Debug, Clone)] +#[serde(deny_unknown_fields)] +pub struct AzureBlobUploadFileConfig { + /// The Azure Blob Storage Account connection string. + /// + /// Authentication with access key is the only supported authentication method. + /// + /// Either `storage_account`, or this field, must be specified. + pub connection_string: Option, + + /// The Azure Blob Storage Account name. + /// + /// Attempts to load credentials for the account in the following ways, in order: + /// + /// - read from environment variables ([more information][env_cred_docs]) + /// - looks for a [Managed Identity][managed_ident_docs] + /// - uses the `az` CLI tool to get an access token ([more information][az_cli_docs]) + /// + /// Either `connection_string`, or this field, must be specified. + /// + /// [env_cred_docs]: https://docs.rs/azure_identity/latest/azure_identity/struct.EnvironmentCredential.html + /// [managed_ident_docs]: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview + /// [az_cli_docs]: https://docs.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest#az-account-get-access-token + pub storage_account: Option, + + /// The Azure Blob Storage Endpoint URL. + /// + /// This is used to override the default blob storage endpoint URL in cases where you are using + /// credentials read from the environment/managed identities or access tokens without using an + /// explicit connection_string (which already explicitly supports overriding the blob endpoint + /// URL). + /// + /// This may only be used with `storage_account` and is ignored when used with + /// `connection_string`. + pub endpoint: Option, + + /// The Azure Blob Storage Account container name. + pub(super) container_name: String, + + /// PLACEHOLDER + #[serde( + default, + deserialize_with = "vector::serde::bool_or_struct", + skip_serializing_if = "vector::serde::is_default" + )] + pub acknowledgements: AcknowledgementsConfig, + + /// The directory used to persist file checkpoint. + /// + /// By default, the global `data_dir` option is used. Please make sure the user Vector is running as has write permissions to this directory. + pub data_dir: Option, + + /// Delay between receiving upload event and beginning to upload file. + #[serde(alias = "delay_upload", default = "default_delay_upload_secs")] + pub delay_upload_secs: u64, + + /// The expire time of uploaded file records which used to prevent duplicate uploads. + #[serde(alias = "expire_after", default = "default_expire_after_secs")] + pub expire_after_secs: u64, +} + +pub const fn default_delay_upload_secs() -> u64 { + 10 +} + +pub const fn default_expire_after_secs() -> u64 { + 1800 +} + +impl GenerateConfig for AzureBlobUploadFileConfig { + fn generate_config() -> toml::Value { + toml::Value::try_from(Self { + connection_string: Some(String::from("DefaultEndpointsProtocol=https;AccountName=some-account-name;AccountKey=some-account-key;").into()), + storage_account: Some(String::from("some-account-name")), + container_name: String::from("logs"), + endpoint: None, + acknowledgements: AcknowledgementsConfig::default(), + data_dir: None, + delay_upload_secs: default_delay_upload_secs(), + expire_after_secs: default_expire_after_secs(), + }) + .unwrap() + } +} + +#[async_trait::async_trait] +#[typetag::serde(name = "azure_blob_upload_file")] +impl SinkConfig for AzureBlobUploadFileConfig { + async fn build(&self, cx: SinkContext) -> vector::Result<(VectorSink, Healthcheck)> { + let client = azure_common::config::build_client( + self.connection_string.clone(), + self.storage_account.clone(), + self.container_name.clone(), + self.endpoint.clone(), + )?; + let sink = self.build_sink(client.clone(), cx)?; + let healthcheck = + azure_common::config::build_healthcheck(self.container_name.clone(), client.clone())?; + Ok((sink, healthcheck)) + } + + fn input(&self) -> Input { + Input::new(DataType::Log) + } + + fn acknowledgements(&self) -> &AcknowledgementsConfig { + &self.acknowledgements + } +} + +impl AzureBlobUploadFileConfig { + fn build_sink( + &self, + client: Arc, + cx: SinkContext, + ) -> vector::Result { + let data_dir = cx + .globals + .resolve_and_make_data_subdir(self.data_dir.as_ref(), self.get_component_name())?; + let mut checkpointer = Checkpointer::new(data_dir); + checkpointer.read_checkpoints(); + let sink = AzureBlobUploadFileSink::new( + client, + self.container_name.clone(), + Duration::from_secs(self.delay_upload_secs), + Duration::from_secs(self.expire_after_secs), + checkpointer, + ); + Ok(VectorSink::from_event_streamsink(sink)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn generate_config() { + vector::test_util::test_generate_config::(); + } +} diff --git a/src/sinks/azure_blob_upload_file/processor.rs b/src/sinks/azure_blob_upload_file/processor.rs new file mode 100644 index 0000000..9bf24e1 --- /dev/null +++ b/src/sinks/azure_blob_upload_file/processor.rs @@ -0,0 +1,147 @@ +use std::collections::HashSet; +use std::io; +use std::sync::Arc; +use std::time::{Duration, SystemTime}; + +use azure_storage_blobs::prelude::*; +use futures_util::stream::BoxStream; +use futures_util::StreamExt; +use tokio_util::time::DelayQueue; +use vector_lib::{ + event::Event, + finalization::{EventStatus, Finalizable}, + internal_event::{CountByteSize, EventsSent, InternalEventHandle}, + register, + sink::StreamSink, +}; + +use crate::common::checkpointer::{Checkpointer, UploadKey}; +use crate::sinks::azure_blob_upload_file::uploader::AzureBlobUploader; + +pub struct AzureBlobUploadFileSink { + pub client: Arc, + pub container_name: String, + pub delay_upload: Duration, + pub expire_after: Duration, + pub checkpointer: Checkpointer, +} + +impl AzureBlobUploadFileSink { + pub fn new( + client: Arc, + container_name: String, + delay_upload: Duration, + expire_after: Duration, + checkpointer: Checkpointer, + ) -> Self { + Self { + client, + container_name, + delay_upload, + expire_after, + checkpointer, + } + } + + async fn file_modified_time(filename: &str) -> io::Result { + tokio::fs::metadata(filename).await?.modified() + } +} + +#[async_trait::async_trait] +impl StreamSink for AzureBlobUploadFileSink { + async fn run(self: Box, mut input: BoxStream<'_, Event>) -> Result<(), ()> { + let Self { + client, + container_name, + delay_upload, + expire_after, + mut checkpointer, + } = *self; + + let mut delay_queue = DelayQueue::new(); + let mut pending_uploads = HashSet::new(); + let mut uploader = AzureBlobUploader::new(client); + + loop { + tokio::select! { + event = input.next() => { + let mut event = if let Some(event) = event { + event + } else { + break; + }; + + let finalizers = event.take_finalizers(); + if let Some(upload_key) = UploadKey::from_event(&event, &container_name) { + let modified_time = match Self::file_modified_time(&upload_key.filename).await { + Ok(modified_time) => modified_time, + Err(err) => { + finalizers.update_status(EventStatus::Rejected); + error!(message = "Failed to get file modified time.", %err); + continue; + } + }; + + if !checkpointer.contains(&upload_key, modified_time) && !pending_uploads.contains(&upload_key) { + delay_queue.insert((upload_key.clone(), finalizers), delay_upload); + pending_uploads.insert(upload_key); + } else { + finalizers.update_status(EventStatus::Delivered); + } + } else { + finalizers.update_status(EventStatus::Rejected); + } + } + + entry = delay_queue.next(), if !delay_queue.is_empty() => { + let (upload_key, finalizers) = if let Some(entry) = entry { + entry.into_inner() + } else { + // DelayQueue returns None if the queue is exhausted, + // however we disable the DelayQueue branch if there are + // no items in the queue. + unreachable!("an empty DelayQueue is never polled"); + }; + pending_uploads.remove(&upload_key); + + let upload_time = SystemTime::now(); + match uploader.upload(&upload_key).await { + Ok(response) => { + if response.count > 0 { + info!( + message = "Uploaded file.", + filename = %upload_key.filename, + bucket = %upload_key.bucket, + key = %upload_key.object_key, + size = %response.events_byte_size, + ); + } + finalizers.update_status(EventStatus::Delivered); + register!(EventsSent { + output: None, + }).emit(CountByteSize(response.count, response.events_byte_size.into())); + checkpointer.update(upload_key, upload_time, expire_after); + } + Err(error) => { + error!( + message = "Failed to upload file to Azure Blob.", + %error, + filename = %upload_key.filename, + bucket = %upload_key.bucket, + key = %upload_key.object_key, + ); + finalizers.update_status(EventStatus::Rejected); + } + } + match checkpointer.write_checkpoints() { + Ok(count) => trace!(message = "Checkpoints written", %count), + Err(error) => error!(message = "Failed to write checkpoints.", %error), + } + } + } + } + + Ok(()) + } +} diff --git a/src/sinks/azure_blob_upload_file/uploader.rs b/src/sinks/azure_blob_upload_file/uploader.rs new file mode 100644 index 0000000..d3fc060 --- /dev/null +++ b/src/sinks/azure_blob_upload_file/uploader.rs @@ -0,0 +1,115 @@ +use std::io; +use std::sync::Arc; + +use azure_storage_blobs::prelude::*; +use bytes::Bytes; +use tokio::fs::File; +use tokio::io::AsyncReadExt; + +use crate::common::checkpointer::UploadKey; + +// limit the chunk size to 8MB to avoid OOM +const AZURE_BLOB_UPLOAD_CHUNK_SIZE: usize = 8 * 1024 * 1024; + +pub struct AzureBlobUploader { + client: Arc, +} + +pub struct UploadResponse { + pub count: usize, + pub events_byte_size: usize, +} + +impl AzureBlobUploader { + pub fn new(client: Arc) -> Self { + Self { client } + } + + pub async fn upload(&mut self, upload_key: &UploadKey) -> io::Result { + Ok(if self.need_upload(upload_key).await? { + UploadResponse { + count: 1, + events_byte_size: self.do_upload(upload_key).await?, + } + } else { + UploadResponse { + count: 0, + events_byte_size: 0, + } + }) + } + + async fn need_upload(&self, upload_key: &UploadKey) -> io::Result { + match self + .client + .blob_client(&upload_key.object_key) + .get_properties() + .await + { + Err(_) => Ok(true), + Ok(_) => Ok(false), + } + } + + async fn do_upload(&self, upload_key: &UploadKey) -> io::Result { + let mut file = File::open(&upload_key.filename).await?; + let file_size = file.metadata().await?.len(); + if file_size <= AZURE_BLOB_UPLOAD_CHUNK_SIZE as u64 { + self.upload_directly(upload_key, &mut file, file_size).await + } else { + self.upload_in_blocks(upload_key, &mut file, file_size) + .await + } + } + + async fn upload_directly( + &self, + upload_key: &UploadKey, + file: &mut File, + file_size: u64, + ) -> io::Result { + let mut buffer = Vec::with_capacity(file_size as usize); + file.read_to_end(&mut buffer).await?; + let client = self.client.blob_client(&upload_key.object_key); + client + .put_block_blob(buffer) + .content_type("application/octet-stream") + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; + Ok(file_size as usize) + } + + async fn upload_in_blocks( + &self, + upload_key: &UploadKey, + file: &mut File, + file_size: u64, + ) -> io::Result { + let client = self.client.blob_client(&upload_key.object_key); + let mut block_list = Vec::new(); + let mut uploaded_size = 0; + let mut buffer = vec![0; AZURE_BLOB_UPLOAD_CHUNK_SIZE]; + while uploaded_size < file_size { + let read_size = file.read(&mut buffer).await?; + if read_size == 0 { + break; + } + let block_id = format!("{:032}", block_list.len()); + client + .put_block( + block_id.clone(), + Bytes::copy_from_slice(&buffer[..read_size]), + ) + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; + block_list.push(BlobBlockType::new_committed(block_id)); + uploaded_size += read_size as u64; + } + client + .put_block_list(BlockList { blocks: block_list }) + .content_type("application/octet-stream") + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; + Ok(uploaded_size as usize) + } +} diff --git a/extensions/gcp-cloud-storage-upload-file/src/config.rs b/src/sinks/gcp_cloud_storage_upload_file/mod.rs similarity index 76% rename from extensions/gcp-cloud-storage-upload-file/src/config.rs rename to src/sinks/gcp_cloud_storage_upload_file/mod.rs index 42e1efb..1aa79be 100644 --- a/extensions/gcp-cloud-storage-upload-file/src/config.rs +++ b/src/sinks/gcp_cloud_storage_upload_file/mod.rs @@ -2,37 +2,58 @@ use std::collections::HashMap; use std::path::PathBuf; use std::time::Duration; -use common::checkpointer::Checkpointer; use goauth::scopes::Scope; -use serde::{Deserialize, Serialize}; -use vector::config::{GenerateConfig, SinkConfig, SinkContext}; -use vector::gcp::{GcpAuthConfig, GcpAuthenticator}; -use vector::http::HttpClient; -use vector::sinks::gcs_common::config::{ - build_healthcheck, GcsPredefinedAcl, GcsStorageClass, BASE_URL, +use vector::{ + config::{GenerateConfig, SinkConfig, SinkContext}, + gcp::{GcpAuthConfig, GcpAuthenticator}, + http::HttpClient, + sinks::gcs_common::config::{build_healthcheck, GcsPredefinedAcl, GcsStorageClass, BASE_URL}, + sinks::Healthcheck, }; -use vector::sinks::Healthcheck; -use vector::tls::{TlsConfig, TlsSettings}; -use vector_core::config::{AcknowledgementsConfig, DataType, Input}; -use vector_core::sink::VectorSink; +use vector_config::NamedComponent; +use vector_lib::{ + config::{AcknowledgementsConfig, DataType, Input}, + configurable::configurable_component, + sink::VectorSink, + tls::{TlsConfig, TlsSettings}, +}; + +use crate::common::checkpointer::Checkpointer; +use crate::sinks::gcp_cloud_storage_upload_file::processor::GcsUploadFileSink; +use crate::sinks::gcp_cloud_storage_upload_file::uploader::RequestSettings; -use crate::processor::GcsUploadFileSink; -use crate::uploader::RequestSettings; +mod processor; +mod uploader; -#[derive(Deserialize, Serialize, Debug)] +/// PLACEHOLDER +#[configurable_component(sink("gcp_cloud_storage_upload_file"))] +#[derive(Debug, Clone)] #[serde(deny_unknown_fields)] pub struct GcsUploadFileSinkConfig { + /// PLACEHOLDER pub bucket: String, + + /// PLACEHOLDER pub acl: Option, + + /// PLACEHOLDER pub storage_class: Option, + + /// PLACEHOLDER pub metadata: Option>, + + /// PLACEHOLDER #[serde(flatten)] pub auth: GcpAuthConfig, + + /// PLACEHOLDER pub tls: Option, + + /// PLACEHOLDER #[serde( default, deserialize_with = "vector::serde::bool_or_struct", - skip_serializing_if = "vector::serde::skip_serializing_if_default" + skip_serializing_if = "vector::serde::is_default" )] pub acknowledgements: AcknowledgementsConfig, @@ -98,12 +119,8 @@ impl SinkConfig for GcsUploadFileSinkConfig { Input::new(DataType::Log) } - fn sink_type(&self) -> &'static str { - "gcp_cloud_storage_upload_file" - } - - fn acknowledgements(&self) -> Option<&AcknowledgementsConfig> { - Some(&self.acknowledgements) + fn acknowledgements(&self) -> &AcknowledgementsConfig { + &self.acknowledgements } } @@ -117,7 +134,7 @@ impl GcsUploadFileSinkConfig { ) -> vector::Result { let data_dir = cx .globals - .resolve_and_make_data_subdir(self.data_dir.as_ref(), self.sink_type())?; + .resolve_and_make_data_subdir(self.data_dir.as_ref(), self.get_component_name())?; let mut checkpointer = Checkpointer::new(data_dir); checkpointer.read_checkpoints(); let req_settings = RequestSettings::new(self)?; diff --git a/extensions/gcp-cloud-storage-upload-file/src/processor.rs b/src/sinks/gcp_cloud_storage_upload_file/processor.rs similarity index 90% rename from extensions/gcp-cloud-storage-upload-file/src/processor.rs rename to src/sinks/gcp_cloud_storage_upload_file/processor.rs index fb13bd0..fcccef9 100644 --- a/extensions/gcp-cloud-storage-upload-file/src/processor.rs +++ b/src/sinks/gcp_cloud_storage_upload_file/processor.rs @@ -2,19 +2,20 @@ use std::collections::HashSet; use std::io; use std::time::{Duration, SystemTime}; -use common::checkpointer::{Checkpointer, UploadKey}; use futures_util::stream::BoxStream; use futures_util::StreamExt; use tokio_util::time::DelayQueue; -use vector::emit; -use vector::event::Finalizable; -use vector::gcp::GcpAuthenticator; -use vector::http::HttpClient; -use vector_core::event::{Event, EventStatus}; -use vector_core::internal_event::EventsSent; -use vector_core::sink::StreamSink; +use vector::{gcp::GcpAuthenticator, http::HttpClient}; +use vector_lib::{ + event::Event, + finalization::{EventStatus, Finalizable}, + internal_event::{CountByteSize, EventsSent, InternalEventHandle}, + register, + sink::StreamSink, +}; -use crate::uploader::{GCSUploader, RequestSettings}; +use crate::common::checkpointer::{Checkpointer, UploadKey}; +use crate::sinks::gcp_cloud_storage_upload_file::uploader::{GCSUploader, RequestSettings}; pub struct GcsUploadFileSink { client: HttpClient, @@ -124,11 +125,9 @@ impl StreamSink for GcsUploadFileSink { ); } finalizers.update_status(EventStatus::Delivered); - emit!(EventsSent { - count: response.count, - byte_size: response.events_byte_size, + register!(EventsSent { output: None, - }); + }).emit(CountByteSize(response.count, response.events_byte_size.into())); checkpointer.update(upload_key, upload_time, expire_after); } Err(error) => { diff --git a/extensions/gcp-cloud-storage-upload-file/src/uploader.rs b/src/sinks/gcp_cloud_storage_upload_file/uploader.rs similarity index 95% rename from extensions/gcp-cloud-storage-upload-file/src/uploader.rs rename to src/sinks/gcp_cloud_storage_upload_file/uploader.rs index 61743c9..8029cd3 100644 --- a/extensions/gcp-cloud-storage-upload-file/src/uploader.rs +++ b/src/sinks/gcp_cloud_storage_upload_file/uploader.rs @@ -1,6 +1,6 @@ use std::io; -use common::checkpointer::UploadKey; +use base64::Engine; use http::header::HeaderName; use http::{HeaderValue, Request, Uri}; use hyper::service::Service; @@ -8,12 +8,12 @@ use hyper::Body; use md5::{Digest, Md5}; use tokio::fs::File; use tokio::io::AsyncReadExt; -use vector::gcp::GcpAuthenticator; -use vector::http::HttpClient; -use vector::serde::json; -use vector::sinks::gcs_common::config::BASE_URL; +use vector::{ + gcp::GcpAuthenticator, http::HttpClient, serde::json, sinks::gcs_common::config::BASE_URL, +}; -use crate::config::GcsUploadFileSinkConfig; +use crate::common::checkpointer::UploadKey; +use crate::sinks::gcp_cloud_storage_upload_file::GcsUploadFileSinkConfig; // limit the chunk size to 8MB to avoid OOM const GCS_UPLOAD_CHUNK_SIZE: usize = 8 * 1024 * 1024; @@ -108,7 +108,7 @@ impl GCSUploader { hasher.update(&buffer[..n]); } let res = hasher.finalize(); - Ok(base64::encode(&res[..])) + Ok(base64::prelude::BASE64_STANDARD.encode(&res[..])) } async fn create_resumable_upload(&mut self, upload_key: &UploadKey) -> io::Result { @@ -220,7 +220,8 @@ impl GCSUploader { ); headers.insert( "content-md5", - HeaderValue::from_str(&base64::encode(Md5::digest(&chunk))).unwrap(), + HeaderValue::from_str(&base64::prelude::BASE64_STANDARD.encode(Md5::digest(&chunk))) + .unwrap(), ); let range_begin = uploaded_bytes; let range_end = uploaded_bytes + n - 1; @@ -309,7 +310,10 @@ impl GCSUploader { ); headers.insert( "content-md5", - HeaderValue::from_str(&base64::encode(Md5::digest(&chunk))).unwrap(), + HeaderValue::from_str( + &base64::prelude::BASE64_STANDARD.encode(Md5::digest(&chunk)), + ) + .unwrap(), ); } else { headers.insert( diff --git a/src/sinks/mod.rs b/src/sinks/mod.rs new file mode 100644 index 0000000..f67581c --- /dev/null +++ b/src/sinks/mod.rs @@ -0,0 +1,4 @@ +pub mod aws_s3_upload_file; +pub mod azure_blob_upload_file; +pub mod gcp_cloud_storage_upload_file; +pub mod vm_import; diff --git a/extensions/vm-import/src/encoder.rs b/src/sinks/vm_import/encoder.rs similarity index 95% rename from extensions/vm-import/src/encoder.rs rename to src/sinks/vm_import/encoder.rs index e70695a..eca1629 100644 --- a/extensions/vm-import/src/encoder.rs +++ b/src/sinks/vm_import/encoder.rs @@ -1,10 +1,11 @@ use serde_json::Value; -use vector::event::Event; -use vector::sinks::util::http::HttpEventEncoder; -use vector::sinks::util::PartitionInnerBuffer; -use vector::template::Template; +use vector::{ + sinks::util::{http::HttpEventEncoder, PartitionInnerBuffer}, + template::Template, +}; +use vector_lib::event::Event; -use crate::partition::PartitionKey; +use crate::sinks::vm_import::partition::PartitionKey; pub struct VMImportSinkEventEncoder { endpoint_template: Template, @@ -61,7 +62,7 @@ impl VMImportSinkEventEncoder { .map(|(key, value)| { let value = String::from_utf8_lossy(value.as_bytes()?); let value = Value::String(value.to_string()); - Some((key, value)) + Some((key.into(), value)) }) .collect::>()?; Some(Value::Object(metric)) @@ -96,7 +97,7 @@ impl VMImportSinkEventEncoder { #[cfg(test)] mod tests { - use topsql::parser::Buf; + use crate::sources::topsql::parser::Buf; use super::*; diff --git a/extensions/vm-import/src/config.rs b/src/sinks/vm_import/mod.rs similarity index 74% rename from extensions/vm-import/src/config.rs rename to src/sinks/vm_import/mod.rs index 6496e78..ad8ef70 100644 --- a/extensions/vm-import/src/config.rs +++ b/src/sinks/vm_import/mod.rs @@ -1,24 +1,45 @@ use futures_util::{FutureExt, SinkExt}; -use serde::{Deserialize, Serialize}; -use vector::config::{AcknowledgementsConfig, GenerateConfig, Input, SinkConfig}; -use vector::http::HttpClient; -use vector::sinks::util::http::PartitionHttpSink; -use vector::sinks::util::{ - BatchConfig, JsonArrayBuffer, PartitionBuffer, SinkBatchSettings, TowerRequestConfig, +use vector::{ + config::{GenerateConfig, SinkConfig, SinkContext}, + http::HttpClient, + sinks::{ + self, + util::{ + http::PartitionHttpSink, BatchConfig, JsonArrayBuffer, PartitionBuffer, + SinkBatchSettings, TowerRequestConfig, + }, + }, }; -use vector::tls::{TlsConfig, TlsSettings}; -use vector::{config, sinks}; +use vector_lib::{ + config::{AcknowledgementsConfig, Input}, + configurable::configurable_component, + tls::{TlsConfig, TlsSettings}, +}; + +use crate::sinks::vm_import::sink::VMImportSink; -use crate::sink::VMImportSink; +mod encoder; +mod partition; +mod sink; -#[derive(Debug, Deserialize, Serialize)] +/// PLACEHOLDER +#[configurable_component(sink("vm_import"))] +#[derive(Debug, Clone)] pub struct VMImportConfig { + /// PLACEHOLDER pub endpoint: String, + + /// PLACEHOLDER pub healthcheck_endpoint: Option, + + /// PLACEHOLDER pub tls: Option, + /// PLACEHOLDER #[serde(default)] pub request: TowerRequestConfig, + + /// PLACEHOLDER #[serde(default)] pub batch: BatchConfig, } @@ -53,13 +74,13 @@ impl GenerateConfig for VMImportConfig { impl SinkConfig for VMImportConfig { async fn build( &self, - cx: config::SinkContext, + cx: SinkContext, ) -> vector::Result<(sinks::VectorSink, sinks::Healthcheck)> { let endpoint_tmp = self.endpoint.clone().try_into()?; let tls_settings = TlsSettings::from_options(&self.tls)?; let batch_settings = self.batch.into_batch_settings()?; - let request_settings = self.request.unwrap_with(&Default::default()); + let request_settings = self.request.into_settings(); let client = HttpClient::new(tls_settings, cx.proxy())?; let sink = VMImportSink::new(endpoint_tmp); @@ -71,11 +92,11 @@ impl SinkConfig for VMImportConfig { request_settings, batch_settings.timeout, client.clone(), - cx.acker(), ) .sink_map_err(|e| error!(message = "VM import sink error.", %e)); let hc = healthcheck(self.healthcheck_endpoint.clone(), client).boxed(); + #[allow(deprecated)] // TODO: remove Ok((sinks::VectorSink::from_event_sink(sink), hc)) } @@ -83,12 +104,8 @@ impl SinkConfig for VMImportConfig { Input::log() } - fn sink_type(&self) -> &'static str { - "vm_import" - } - - fn acknowledgements(&self) -> Option<&AcknowledgementsConfig> { - None + fn acknowledgements(&self) -> &AcknowledgementsConfig { + &AcknowledgementsConfig::DEFAULT } } diff --git a/extensions/vm-import/src/partition.rs b/src/sinks/vm_import/partition.rs similarity index 100% rename from extensions/vm-import/src/partition.rs rename to src/sinks/vm_import/partition.rs diff --git a/extensions/vm-import/src/sink.rs b/src/sinks/vm_import/sink.rs similarity index 84% rename from extensions/vm-import/src/sink.rs rename to src/sinks/vm_import/sink.rs index 3505b32..afc4dae 100644 --- a/extensions/vm-import/src/sink.rs +++ b/src/sinks/vm_import/sink.rs @@ -4,12 +4,16 @@ use bytes::{BufMut, Bytes, BytesMut}; use flate2::write::GzEncoder; use flate2::Compression; use http::{Request, Uri}; -use vector::sinks::util::http::HttpSink; -use vector::sinks::util::{BoxedRawValue, PartitionInnerBuffer}; -use vector::template::Template; - -use crate::encoder::VMImportSinkEventEncoder; -use crate::partition::PartitionKey; +use vector::{ + sinks::util::{ + http::HttpSink, + {BoxedRawValue, PartitionInnerBuffer}, + }, + template::Template, +}; + +use crate::sinks::vm_import::encoder::VMImportSinkEventEncoder; +use crate::sinks::vm_import::partition::PartitionKey; #[derive(Clone)] pub struct VMImportSink { diff --git a/src/sources/conprof/controller.rs b/src/sources/conprof/controller.rs new file mode 100644 index 0000000..6fc31b2 --- /dev/null +++ b/src/sources/conprof/controller.rs @@ -0,0 +1,164 @@ +use std::collections::{HashMap, HashSet}; +use std::time::Duration; + +use tracing::instrument::Instrument; +use vector::{shutdown::ShutdownSignal, SourceSender}; +use vector_lib::{config::proxy::ProxyConfig, tls::TlsConfig}; + +use crate::sources::conprof::shutdown::{pair, ShutdownNotifier, ShutdownSubscriber}; +use crate::sources::conprof::topology::{Component, FetchError, TopologyFetcher}; +use crate::sources::conprof::upstream::ConprofSource; + +pub struct Controller { + topo_fetch_interval: Duration, + topo_fetcher: TopologyFetcher, + + components: HashSet, + running_components: HashMap, + + shutdown_notifier: ShutdownNotifier, + shutdown_subscriber: ShutdownSubscriber, + + tls: Option, + // init_retry_delay: Duration, + out: SourceSender, + + enable_tikv_heap_profile: bool, +} + +impl Controller { + pub async fn new( + pd_address: String, + topo_fetch_interval: Duration, + enable_tikv_heap_profile: bool, + // init_retry_delay: Duration, + tls_config: Option, + proxy_config: &ProxyConfig, + out: SourceSender, + ) -> vector::Result { + let topo_fetcher = + TopologyFetcher::new(pd_address, tls_config.clone(), proxy_config).await?; + let (shutdown_notifier, shutdown_subscriber) = pair(); + Ok(Self { + topo_fetch_interval, + topo_fetcher, + components: HashSet::new(), + running_components: HashMap::new(), + shutdown_notifier, + shutdown_subscriber, + tls: tls_config, + // init_retry_delay, + out, + enable_tikv_heap_profile, + }) + } + + pub async fn run(mut self, mut shutdown: ShutdownSignal) { + tokio::select! { + _ = self.run_loop() => {}, + _ = &mut shutdown => {}, + } + + info!("ConProf Controller is shutting down."); + self.shutdown_all_components().await; + } + + async fn run_loop(&mut self) { + tokio::time::sleep(Duration::from_secs(30)).await; // protect crash loop + + loop { + let res = self.fetch_and_update().await; + match res { + Ok(has_change) if has_change => { + info!(message = "Topology has changed.", latest_components = ?self.components); + } + Err(error) => { + error!(message = "Failed to fetch topology.", error = %error); + } + _ => {} + } + + tokio::time::sleep(self.topo_fetch_interval).await; + } + } + + async fn fetch_and_update(&mut self) -> Result { + let mut has_change = false; + let mut latest_components = HashSet::new(); + self.topo_fetcher + .get_up_components(&mut latest_components) + .await?; + + let prev_components = self.components.clone(); + let newcomers = latest_components.difference(&prev_components); + let leavers = prev_components.difference(&latest_components); + + for newcomer in newcomers { + if self.start_component(newcomer).await { + has_change = true; + self.components.insert(newcomer.clone()); + } + } + for leaver in leavers { + if self.stop_component(leaver).await { + has_change = true; + self.components.remove(leaver); + } + } + + Ok(has_change) + } + + async fn start_component(&mut self, component: &Component) -> bool { + let source = ConprofSource::new( + component.clone(), + self.tls.clone(), + self.out.clone(), + // self.init_retry_delay, + self.enable_tikv_heap_profile, + ) + .await; + let source = match source { + Some(source) => source, + None => return false, + }; + + let (shutdown_notifier, shutdown_subscriber) = self.shutdown_subscriber.extend(); + tokio::spawn( + source + .run(shutdown_subscriber) + .instrument(tracing::info_span!("conprof_source", conprof_source = %component)), + ); + info!(message = "Started ConProf source.", conprof_source = %component); + self.running_components + .insert(component.clone(), shutdown_notifier); + + true + } + + async fn stop_component(&mut self, component: &Component) -> bool { + let shutdown_notifier = self.running_components.remove(component); + let shutdown_notifier = match shutdown_notifier { + Some(shutdown_notifier) => shutdown_notifier, + None => return false, + }; + shutdown_notifier.shutdown(); + shutdown_notifier.wait_for_exit().await; + info!(message = "Stopped ConProf source.", conprof_source = %component); + + true + } + + async fn shutdown_all_components(self) { + for (component, shutdown_notifier) in self.running_components { + info!(message = "Shutting down ConProf source.", conprof_source = %component); + shutdown_notifier.shutdown(); + shutdown_notifier.wait_for_exit().await; + } + + drop(self.shutdown_subscriber); + self.shutdown_notifier.shutdown(); + self.shutdown_notifier.wait_for_exit().await; + info!(message = "All ConProf sources have been shut down."); + } +} diff --git a/src/sources/conprof/mod.rs b/src/sources/conprof/mod.rs new file mode 100644 index 0000000..eb38e98 --- /dev/null +++ b/src/sources/conprof/mod.rs @@ -0,0 +1,151 @@ +use std::time::Duration; + +use vector::config::{GenerateConfig, SourceConfig, SourceContext}; +use vector_lib::{ + config::{DataType, LogNamespace, SourceOutput}, + configurable::configurable_component, + source::Source, + tls::TlsConfig, +}; + +use crate::sources::conprof::controller::Controller; + +mod controller; +mod shutdown; +mod tools; +mod topology; +mod upstream; + +/// PLACEHOLDER +#[configurable_component(source("conprof"))] +#[derive(Debug, Clone)] +pub struct ConprofConfig { + /// PLACEHOLDER + pub pd_address: String, + + /// PLACEHOLDER + pub tls: Option, + + /// PLACEHOLDER + // #[serde(default = "default_init_retry_delay")] + // pub init_retry_delay_seconds: f64, + + /// PLACEHOLDER + #[serde(default = "default_topology_fetch_interval")] + pub topology_fetch_interval_seconds: f64, + + /// PLACEHOLDER + #[serde(default = "default_enable_tikv_heap_profile")] + pub enable_tikv_heap_profile: bool, +} + +// pub const fn default_init_retry_delay() -> f64 { +// 1.0 +// } + +pub const fn default_topology_fetch_interval() -> f64 { + 30.0 +} + +pub const fn default_enable_tikv_heap_profile() -> bool { + false +} + +impl GenerateConfig for ConprofConfig { + fn generate_config() -> toml::Value { + toml::Value::try_from(Self { + pd_address: "127.0.0.1:2379".to_owned(), + tls: None, + // init_retry_delay_seconds: default_init_retry_delay(), + topology_fetch_interval_seconds: default_topology_fetch_interval(), + enable_tikv_heap_profile: default_enable_tikv_heap_profile(), + }) + .unwrap() + } +} + +#[async_trait::async_trait] +#[typetag::serde(name = "conprof")] +impl SourceConfig for ConprofConfig { + async fn build(&self, cx: SourceContext) -> vector::Result { + self.validate_tls()?; + + let pd_address = self.pd_address.clone(); + let tls = self.tls.clone(); + let topology_fetch_interval = Duration::from_secs_f64(self.topology_fetch_interval_seconds); + let enable_tikv_heap_profile = self.enable_tikv_heap_profile; + // let init_retry_delay = Duration::from_secs_f64(self.init_retry_delay_seconds); + Ok(Box::pin(async move { + Controller::new( + pd_address, + topology_fetch_interval, + enable_tikv_heap_profile, + // init_retry_delay, + tls, + &cx.proxy, + cx.out, + ) + .await + .map_err(|error| error!(message = "Source failed.", %error))? + .run(cx.shutdown) + .await; + Ok(()) + })) + } + + fn outputs(&self, _: LogNamespace) -> Vec { + vec![SourceOutput { + port: None, + ty: DataType::Log, + schema_definition: None, + }] + } + + fn can_acknowledge(&self) -> bool { + false + } +} + +impl ConprofConfig { + fn validate_tls(&self) -> vector::Result<()> { + if self.tls.is_none() { + return Ok(()); + } + + let tls = self.tls.as_ref().unwrap(); + if (tls.ca_file.is_some() || tls.crt_file.is_some() || tls.key_file.is_some()) + && (tls.ca_file.is_none() || tls.crt_file.is_none() || tls.key_file.is_none()) + { + return Err("ca, cert and private key should be all configured.".into()); + } + + Self::check_key_file("ca key", &tls.ca_file)?; + Self::check_key_file("cert key", &tls.crt_file)?; + Self::check_key_file("private key", &tls.key_file)?; + + Ok(()) + } + + fn check_key_file( + tag: &str, + path: &Option, + ) -> vector::Result> { + if path.is_none() { + return Ok(None); + } + match std::fs::File::open(path.as_ref().unwrap()) { + Err(e) => Err(format!("failed to open {:?} to load {}: {:?}", path, tag, e).into()), + Ok(f) => Ok(Some(f)), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn generate_config() { + vector::test_util::test_generate_config::(); + } +} diff --git a/extensions/topsql/src/shutdown.rs b/src/sources/conprof/shutdown.rs similarity index 100% rename from extensions/topsql/src/shutdown.rs rename to src/sources/conprof/shutdown.rs diff --git a/src/sources/conprof/tools/jeprof b/src/sources/conprof/tools/jeprof new file mode 100644 index 0000000..c929d91 --- /dev/null +++ b/src/sources/conprof/tools/jeprof @@ -0,0 +1,5723 @@ +#! /usr/bin/env perl + +# Copyright (c) 1998-2007, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# --- +# Program for printing the profile generated by common/profiler.cc, +# or by the heap profiler (common/debugallocation.cc) +# +# The profile contains a sequence of entries of the form: +# +# This program parses the profile, and generates user-readable +# output. +# +# Examples: +# +# % tools/jeprof "program" "profile" +# Enters "interactive" mode +# +# % tools/jeprof --text "program" "profile" +# Generates one line per procedure +# +# % tools/jeprof --gv "program" "profile" +# Generates annotated call-graph and displays via "gv" +# +# % tools/jeprof --gv --focus=Mutex "program" "profile" +# Restrict to code paths that involve an entry that matches "Mutex" +# +# % tools/jeprof --gv --focus=Mutex --ignore=string "program" "profile" +# Restrict to code paths that involve an entry that matches "Mutex" +# and does not match "string" +# +# % tools/jeprof --list=IBF_CheckDocid "program" "profile" +# Generates disassembly listing of all routines with at least one +# sample that match the --list= pattern. The listing is +# annotated with the flat and cumulative sample counts at each line. +# +# % tools/jeprof --disasm=IBF_CheckDocid "program" "profile" +# Generates disassembly listing of all routines with at least one +# sample that match the --disasm= pattern. The listing is +# annotated with the flat and cumulative sample counts at each PC value. +# +# TODO: Use color to indicate files? + +use strict; +use warnings; +use Getopt::Long; +use Cwd; + +my $JEPROF_VERSION = "unknown"; +my $PPROF_VERSION = "2.0"; + +# These are the object tools we use which can come from a +# user-specified location using --tools, from the JEPROF_TOOLS +# environment variable, or from the environment. +my %obj_tool_map = ( + "objdump" => "objdump", + "nm" => "nm", + "addr2line" => "addr2line", + "c++filt" => "c++filt", + ## ConfigureObjTools may add architecture-specific entries: + #"nm_pdb" => "nm-pdb", # for reading windows (PDB-format) executables + #"addr2line_pdb" => "addr2line-pdb", # ditto + #"otool" => "otool", # equivalent of objdump on OS X +); +# NOTE: these are lists, so you can put in commandline flags if you want. +my @DOT = ("dot"); # leave non-absolute, since it may be in /usr/local +my @GV = ("gv"); +my @EVINCE = ("evince"); # could also be xpdf or perhaps acroread +my @KCACHEGRIND = ("kcachegrind"); +my @PS2PDF = ("ps2pdf"); +# These are used for dynamic profiles +my @URL_FETCHER = ("curl", "-s", "--fail"); + +# These are the web pages that servers need to support for dynamic profiles +my $HEAP_PAGE = "/pprof/heap"; +my $PROFILE_PAGE = "/pprof/profile"; # must support cgi-param "?seconds=#" +my $PMUPROFILE_PAGE = "/pprof/pmuprofile(?:\\?.*)?"; # must support cgi-param + # ?seconds=#&event=x&period=n +my $GROWTH_PAGE = "/pprof/growth"; +my $CONTENTION_PAGE = "/pprof/contention"; +my $WALL_PAGE = "/pprof/wall(?:\\?.*)?"; # accepts options like namefilter +my $FILTEREDPROFILE_PAGE = "/pprof/filteredprofile(?:\\?.*)?"; +my $CENSUSPROFILE_PAGE = "/pprof/censusprofile(?:\\?.*)?"; # must support cgi-param + # "?seconds=#", + # "?tags_regexp=#" and + # "?type=#". +my $SYMBOL_PAGE = "/pprof/symbol"; # must support symbol lookup via POST +my $PROGRAM_NAME_PAGE = "/pprof/cmdline"; + +# These are the web pages that can be named on the command line. +# All the alternatives must begin with /. +my $PROFILES = "($HEAP_PAGE|$PROFILE_PAGE|$PMUPROFILE_PAGE|" . + "$GROWTH_PAGE|$CONTENTION_PAGE|$WALL_PAGE|" . + "$FILTEREDPROFILE_PAGE|$CENSUSPROFILE_PAGE)"; + +# default binary name +my $UNKNOWN_BINARY = "(unknown)"; + +# There is a pervasive dependency on the length (in hex characters, +# i.e., nibbles) of an address, distinguishing between 32-bit and +# 64-bit profiles. To err on the safe size, default to 64-bit here: +my $address_length = 16; + +my $dev_null = "/dev/null"; +if (! -e $dev_null && $^O =~ /MSWin/) { # $^O is the OS perl was built for + $dev_null = "nul"; +} + +# A list of paths to search for shared object files +my @prefix_list = (); + +# Special routine name that should not have any symbols. +# Used as separator to parse "addr2line -i" output. +my $sep_symbol = '_fini'; +my $sep_address = undef; + +##### Argument parsing ##### + +sub usage_string { + return < + is a space separated list of profile names. +jeprof [options] + is a list of profile files where each file contains + the necessary symbol mappings as well as profile data (likely generated + with --raw). +jeprof [options] + is a remote form. Symbols are obtained from host:port$SYMBOL_PAGE + + Each name can be: + /path/to/profile - a path to a profile file + host:port[/] - a location of a service to get profile from + + The / can be $HEAP_PAGE, $PROFILE_PAGE, /pprof/pmuprofile, + $GROWTH_PAGE, $CONTENTION_PAGE, /pprof/wall, + $CENSUSPROFILE_PAGE, or /pprof/filteredprofile. + For instance: + jeprof http://myserver.com:80$HEAP_PAGE + If / is omitted, the service defaults to $PROFILE_PAGE (cpu profiling). +jeprof --symbols + Maps addresses to symbol names. In this mode, stdin should be a + list of library mappings, in the same format as is found in the heap- + and cpu-profile files (this loosely matches that of /proc/self/maps + on linux), followed by a list of hex addresses to map, one per line. + + For more help with querying remote servers, including how to add the + necessary server-side support code, see this filename (or one like it): + + /usr/doc/gperftools-$PPROF_VERSION/pprof_remote_servers.html + +Options: + --cum Sort by cumulative data + --base= Subtract from before display + --interactive Run in interactive mode (interactive "help" gives help) [default] + --seconds= Length of time for dynamic profiles [default=30 secs] + --add_lib= Read additional symbols and line info from the given library + --lib_prefix= Comma separated list of library path prefixes + +Reporting Granularity: + --addresses Report at address level + --lines Report at source line level + --functions Report at function level [default] + --files Report at source file level + +Output type: + --text Generate text report + --callgrind Generate callgrind format to stdout + --gv Generate Postscript and display + --evince Generate PDF and display + --web Generate SVG and display + --list= Generate source listing of matching routines + --disasm= Generate disassembly of matching routines + --symbols Print demangled symbol names found at given addresses + --dot Generate DOT file to stdout + --ps Generate Postcript to stdout + --pdf Generate PDF to stdout + --svg Generate SVG to stdout + --gif Generate GIF to stdout + --raw Generate symbolized jeprof data (useful with remote fetch) + --collapsed Generate collapsed stacks for building flame graphs + (see http://www.brendangregg.com/flamegraphs.html) + +Heap-Profile Options: + --inuse_space Display in-use (mega)bytes [default] + --inuse_objects Display in-use objects + --alloc_space Display allocated (mega)bytes + --alloc_objects Display allocated objects + --show_bytes Display space in bytes + --drop_negative Ignore negative differences + +Contention-profile options: + --total_delay Display total delay at each region [default] + --contentions Display number of delays at each region + --mean_delay Display mean delay at each region + +Call-graph Options: + --nodecount= Show at most so many nodes [default=80] + --nodefraction= Hide nodes below *total [default=.005] + --edgefraction= Hide edges below *total [default=.001] + --maxdegree= Max incoming/outgoing edges per node [default=8] + --focus= Focus on backtraces with nodes matching + --thread= Show profile for thread + --ignore= Ignore backtraces with nodes matching + --scale= Set GV scaling [default=0] + --heapcheck Make nodes with non-0 object counts + (i.e. direct leak generators) more visible + --retain= Retain only nodes that match + --exclude= Exclude all nodes that match + +Miscellaneous: + --tools=[,...] \$PATH for object tool pathnames + --test Run unit tests + --help This message + --version Version information + --debug-syms-by-id (Linux only) Find debug symbol files by build ID as well as by name + +Environment Variables: + JEPROF_TMPDIR Profiles directory. Defaults to \$HOME/jeprof + JEPROF_TOOLS Prefix for object tools pathnames + URL_FETCHER Command to fetch remote profiles + +Examples: + +jeprof /bin/ls ls.prof + Enters "interactive" mode +jeprof --text /bin/ls ls.prof + Outputs one line per procedure +jeprof --web /bin/ls ls.prof + Displays annotated call-graph in web browser +jeprof --gv /bin/ls ls.prof + Displays annotated call-graph via 'gv' +jeprof --gv --focus=Mutex /bin/ls ls.prof + Restricts to code paths including a .*Mutex.* entry +jeprof --gv --focus=Mutex --ignore=string /bin/ls ls.prof + Code paths including Mutex but not string +jeprof --list=getdir /bin/ls ls.prof + (Per-line) annotated source listing for getdir() +jeprof --disasm=getdir /bin/ls ls.prof + (Per-PC) annotated disassembly for getdir() + +jeprof http://localhost:1234/ + Enters "interactive" mode +jeprof --text localhost:1234 + Outputs one line per procedure for localhost:1234 +jeprof --raw localhost:1234 > ./local.raw +jeprof --text ./local.raw + Fetches a remote profile for later analysis and then + analyzes it in text mode. +EOF +} + +sub version_string { + return < \$main::opt_help, + "version!" => \$main::opt_version, + "cum!" => \$main::opt_cum, + "base=s" => \$main::opt_base, + "seconds=i" => \$main::opt_seconds, + "add_lib=s" => \$main::opt_lib, + "lib_prefix=s" => \$main::opt_lib_prefix, + "functions!" => \$main::opt_functions, + "lines!" => \$main::opt_lines, + "addresses!" => \$main::opt_addresses, + "files!" => \$main::opt_files, + "text!" => \$main::opt_text, + "callgrind!" => \$main::opt_callgrind, + "list=s" => \$main::opt_list, + "disasm=s" => \$main::opt_disasm, + "symbols!" => \$main::opt_symbols, + "gv!" => \$main::opt_gv, + "evince!" => \$main::opt_evince, + "web!" => \$main::opt_web, + "dot!" => \$main::opt_dot, + "ps!" => \$main::opt_ps, + "pdf!" => \$main::opt_pdf, + "svg!" => \$main::opt_svg, + "gif!" => \$main::opt_gif, + "raw!" => \$main::opt_raw, + "collapsed!" => \$main::opt_collapsed, + "interactive!" => \$main::opt_interactive, + "nodecount=i" => \$main::opt_nodecount, + "nodefraction=f" => \$main::opt_nodefraction, + "edgefraction=f" => \$main::opt_edgefraction, + "maxdegree=i" => \$main::opt_maxdegree, + "focus=s" => \$main::opt_focus, + "thread=s" => \$main::opt_thread, + "ignore=s" => \$main::opt_ignore, + "scale=i" => \$main::opt_scale, + "heapcheck" => \$main::opt_heapcheck, + "retain=s" => \$main::opt_retain, + "exclude=s" => \$main::opt_exclude, + "inuse_space!" => \$main::opt_inuse_space, + "inuse_objects!" => \$main::opt_inuse_objects, + "alloc_space!" => \$main::opt_alloc_space, + "alloc_objects!" => \$main::opt_alloc_objects, + "show_bytes!" => \$main::opt_show_bytes, + "drop_negative!" => \$main::opt_drop_negative, + "total_delay!" => \$main::opt_total_delay, + "contentions!" => \$main::opt_contentions, + "mean_delay!" => \$main::opt_mean_delay, + "tools=s" => \$main::opt_tools, + "test!" => \$main::opt_test, + "debug!" => \$main::opt_debug, + "debug-syms-by-id!" => \$main::opt_debug_syms_by_id, + # Undocumented flags used only by unittests: + "test_stride=i" => \$main::opt_test_stride, + ) || usage("Invalid option(s)"); + + # Deal with the standard --help and --version + if ($main::opt_help) { + print usage_string(); + exit(0); + } + + if ($main::opt_version) { + print version_string(); + exit(0); + } + + # Disassembly/listing/symbols mode requires address-level info + if ($main::opt_disasm || $main::opt_list || $main::opt_symbols) { + $main::opt_functions = 0; + $main::opt_lines = 0; + $main::opt_addresses = 1; + $main::opt_files = 0; + } + + # Check heap-profiling flags + if ($main::opt_inuse_space + + $main::opt_inuse_objects + + $main::opt_alloc_space + + $main::opt_alloc_objects > 1) { + usage("Specify at most on of --inuse/--alloc options"); + } + + # Check output granularities + my $grains = + $main::opt_functions + + $main::opt_lines + + $main::opt_addresses + + $main::opt_files + + 0; + if ($grains > 1) { + usage("Only specify one output granularity option"); + } + if ($grains == 0) { + $main::opt_functions = 1; + } + + # Check output modes + my $modes = + $main::opt_text + + $main::opt_callgrind + + ($main::opt_list eq '' ? 0 : 1) + + ($main::opt_disasm eq '' ? 0 : 1) + + ($main::opt_symbols == 0 ? 0 : 1) + + $main::opt_gv + + $main::opt_evince + + $main::opt_web + + $main::opt_dot + + $main::opt_ps + + $main::opt_pdf + + $main::opt_svg + + $main::opt_gif + + $main::opt_raw + + $main::opt_collapsed + + $main::opt_interactive + + 0; + if ($modes > 1) { + usage("Only specify one output mode"); + } + if ($modes == 0) { + if (-t STDOUT) { # If STDOUT is a tty, activate interactive mode + $main::opt_interactive = 1; + } else { + $main::opt_text = 1; + } + } + + if ($main::opt_test) { + RunUnitTests(); + # Should not return + exit(1); + } + + # Binary name and profile arguments list + $main::prog = ""; + @main::pfile_args = (); + + # Override url_fetcher variable if URL_FETCHER environment variable is set + if ($ENV{URL_FETCHER}) { + @URL_FETCHER = split(' ', $ENV{URL_FETCHER}); + } + + # Remote profiling without a binary (using $SYMBOL_PAGE instead) + if (@ARGV > 0) { + if (IsProfileURL($ARGV[0])) { + $main::use_symbol_page = 1; + } elsif (IsSymbolizedProfileFile($ARGV[0])) { + $main::use_symbolized_profile = 1; + $main::prog = $UNKNOWN_BINARY; # will be set later from the profile file + } + } + + if ($main::use_symbol_page || $main::use_symbolized_profile) { + # We don't need a binary! + my %disabled = ('--lines' => $main::opt_lines, + '--disasm' => $main::opt_disasm); + for my $option (keys %disabled) { + usage("$option cannot be used without a binary") if $disabled{$option}; + } + # Set $main::prog later... + scalar(@ARGV) || usage("Did not specify profile file"); + } elsif ($main::opt_symbols) { + # --symbols needs a binary-name (to run nm on, etc) but not profiles + $main::prog = shift(@ARGV) || usage("Did not specify program"); + } else { + $main::prog = shift(@ARGV) || usage("Did not specify program"); + scalar(@ARGV) || usage("Did not specify profile file"); + } + + # Parse profile file/location arguments + foreach my $farg (@ARGV) { + if ($farg =~ m/(.*)\@([0-9]+)(|\/.*)$/ ) { + my $machine = $1; + my $num_machines = $2; + my $path = $3; + for (my $i = 0; $i < $num_machines; $i++) { + unshift(@main::pfile_args, "$i.$machine$path"); + } + } else { + unshift(@main::pfile_args, $farg); + } + } + + if ($main::use_symbol_page) { + unless (IsProfileURL($main::pfile_args[0])) { + error("The first profile should be a remote form to use $SYMBOL_PAGE\n"); + } + CheckSymbolPage(); + $main::prog = FetchProgramName(); + } elsif (!$main::use_symbolized_profile) { # may not need objtools! + ConfigureObjTools($main::prog) + } + + # Break the opt_lib_prefix into the prefix_list array + @prefix_list = split (',', $main::opt_lib_prefix); + + # Remove trailing / from the prefixes, in the list to prevent + # searching things like /my/path//lib/mylib.so + foreach (@prefix_list) { + s|/+$||; + } + + # Flag to prevent us from trying over and over to use + # elfutils if it's not installed (used only with + # --debug-syms-by-id option). + $main::gave_up_on_elfutils = 0; +} + +sub FilterAndPrint { + my ($profile, $symbols, $libs, $thread) = @_; + + # Get total data in profile + my $total = TotalProfile($profile); + + # Remove uniniteresting stack items + $profile = RemoveUninterestingFrames($symbols, $profile); + + # Focus? + if ($main::opt_focus ne '') { + $profile = FocusProfile($symbols, $profile, $main::opt_focus); + } + + # Ignore? + if ($main::opt_ignore ne '') { + $profile = IgnoreProfile($symbols, $profile, $main::opt_ignore); + } + + my $calls = ExtractCalls($symbols, $profile); + + # Reduce profiles to required output granularity, and also clean + # each stack trace so a given entry exists at most once. + my $reduced = ReduceProfile($symbols, $profile); + + # Get derived profiles + my $flat = FlatProfile($reduced); + my $cumulative = CumulativeProfile($reduced); + + # Print + if (!$main::opt_interactive) { + if ($main::opt_disasm) { + PrintDisassembly($libs, $flat, $cumulative, $main::opt_disasm); + } elsif ($main::opt_list) { + PrintListing($total, $libs, $flat, $cumulative, $main::opt_list, 0); + } elsif ($main::opt_text) { + # Make sure the output is empty when have nothing to report + # (only matters when --heapcheck is given but we must be + # compatible with old branches that did not pass --heapcheck always): + if ($total != 0) { + printf("Total%s: %s %s\n", + (defined($thread) ? " (t$thread)" : ""), + Unparse($total), Units()); + } + PrintText($symbols, $flat, $cumulative, -1); + } elsif ($main::opt_raw) { + PrintSymbolizedProfile($symbols, $profile, $main::prog); + } elsif ($main::opt_collapsed) { + PrintCollapsedStacks($symbols, $profile); + } elsif ($main::opt_callgrind) { + PrintCallgrind($calls); + } else { + if (PrintDot($main::prog, $symbols, $profile, $flat, $cumulative, $total)) { + if ($main::opt_gv) { + RunGV(TempName($main::next_tmpfile, "ps"), ""); + } elsif ($main::opt_evince) { + RunEvince(TempName($main::next_tmpfile, "pdf"), ""); + } elsif ($main::opt_web) { + my $tmp = TempName($main::next_tmpfile, "svg"); + RunWeb($tmp); + # The command we run might hand the file name off + # to an already running browser instance and then exit. + # Normally, we'd remove $tmp on exit (right now), + # but fork a child to remove $tmp a little later, so that the + # browser has time to load it first. + delete $main::tempnames{$tmp}; + if (fork() == 0) { + sleep 5; + unlink($tmp); + exit(0); + } + } + } else { + cleanup(); + exit(1); + } + } + } else { + InteractiveMode($profile, $symbols, $libs, $total); + } +} + +sub Main() { + Init(); + $main::collected_profile = undef; + @main::profile_files = (); + $main::op_time = time(); + + # Printing symbols is special and requires a lot less info that most. + if ($main::opt_symbols) { + PrintSymbols(*STDIN); # Get /proc/maps and symbols output from stdin + return; + } + + # Fetch all profile data + FetchDynamicProfiles(); + + # this will hold symbols that we read from the profile files + my $symbol_map = {}; + + # Read one profile, pick the last item on the list + my $data = ReadProfile($main::prog, $main::profile_files[0]); + my $profile = $data->{profile}; + my $pcs = $data->{pcs}; + my $libs = $data->{libs}; # Info about main program and shared libraries + $symbol_map = MergeSymbols($symbol_map, $data->{symbols}); + + # Add additional profiles, if available. + if (scalar(@main::profile_files) > 1) { + foreach my $pname (@main::profile_files[1..$#main::profile_files]) { + my $data2 = ReadProfile($main::prog, $pname); + $profile = AddProfile($profile, $data2->{profile}); + $pcs = AddPcs($pcs, $data2->{pcs}); + $symbol_map = MergeSymbols($symbol_map, $data2->{symbols}); + } + } + + # Subtract base from profile, if specified + if ($main::opt_base ne '') { + my $base = ReadProfile($main::prog, $main::opt_base); + $profile = SubtractProfile($profile, $base->{profile}); + $pcs = AddPcs($pcs, $base->{pcs}); + $symbol_map = MergeSymbols($symbol_map, $base->{symbols}); + } + + # Collect symbols + my $symbols; + if ($main::use_symbolized_profile) { + $symbols = FetchSymbols($pcs, $symbol_map); + } elsif ($main::use_symbol_page) { + $symbols = FetchSymbols($pcs); + } else { + # TODO(csilvers): $libs uses the /proc/self/maps data from profile1, + # which may differ from the data from subsequent profiles, especially + # if they were run on different machines. Use appropriate libs for + # each pc somehow. + $symbols = ExtractSymbols($libs, $pcs); + } + + if (!defined($main::opt_thread)) { + FilterAndPrint($profile, $symbols, $libs); + } + if (defined($data->{threads})) { + foreach my $thread (sort { $a <=> $b } keys(%{$data->{threads}})) { + if (defined($main::opt_thread) && + ($main::opt_thread eq '*' || $main::opt_thread == $thread)) { + my $thread_profile = $data->{threads}{$thread}; + FilterAndPrint($thread_profile, $symbols, $libs, $thread); + } + } + } + + cleanup(); + exit(0); +} + +##### Entry Point ##### + +Main(); + +# Temporary code to detect if we're running on a Goobuntu system. +# These systems don't have the right stuff installed for the special +# Readline libraries to work, so as a temporary workaround, we default +# to using the normal stdio code, rather than the fancier readline-based +# code +sub ReadlineMightFail { + if (-e '/lib/libtermcap.so.2') { + return 0; # libtermcap exists, so readline should be okay + } else { + return 1; + } +} + +sub RunGV { + my $fname = shift; + my $bg = shift; # "" or " &" if we should run in background + if (!system(ShellEscape(@GV, "--version") . " >$dev_null 2>&1")) { + # Options using double dash are supported by this gv version. + # Also, turn on noantialias to better handle bug in gv for + # postscript files with large dimensions. + # TODO: Maybe we should not pass the --noantialias flag + # if the gv version is known to work properly without the flag. + system(ShellEscape(@GV, "--scale=$main::opt_scale", "--noantialias", $fname) + . $bg); + } else { + # Old gv version - only supports options that use single dash. + print STDERR ShellEscape(@GV, "-scale", $main::opt_scale) . "\n"; + system(ShellEscape(@GV, "-scale", "$main::opt_scale", $fname) . $bg); + } +} + +sub RunEvince { + my $fname = shift; + my $bg = shift; # "" or " &" if we should run in background + system(ShellEscape(@EVINCE, $fname) . $bg); +} + +sub RunWeb { + my $fname = shift; + print STDERR "Loading web page file:///$fname\n"; + + if (`uname` =~ /Darwin/) { + # OS X: open will use standard preference for SVG files. + system("/usr/bin/open", $fname); + return; + } + + # Some kind of Unix; try generic symlinks, then specific browsers. + # (Stop once we find one.) + # Works best if the browser is already running. + my @alt = ( + "/etc/alternatives/gnome-www-browser", + "/etc/alternatives/x-www-browser", + "google-chrome", + "firefox", + ); + foreach my $b (@alt) { + if (system($b, $fname) == 0) { + return; + } + } + + print STDERR "Could not load web browser.\n"; +} + +sub RunKcachegrind { + my $fname = shift; + my $bg = shift; # "" or " &" if we should run in background + print STDERR "Starting '@KCACHEGRIND " . $fname . $bg . "'\n"; + system(ShellEscape(@KCACHEGRIND, $fname) . $bg); +} + + +##### Interactive helper routines ##### + +sub InteractiveMode { + $| = 1; # Make output unbuffered for interactive mode + my ($orig_profile, $symbols, $libs, $total) = @_; + + print STDERR "Welcome to jeprof! For help, type 'help'.\n"; + + # Use ReadLine if it's installed and input comes from a console. + if ( -t STDIN && + !ReadlineMightFail() && + defined(eval {require Term::ReadLine}) ) { + my $term = new Term::ReadLine 'jeprof'; + while ( defined ($_ = $term->readline('(jeprof) '))) { + $term->addhistory($_) if /\S/; + if (!InteractiveCommand($orig_profile, $symbols, $libs, $total, $_)) { + last; # exit when we get an interactive command to quit + } + } + } else { # don't have readline + while (1) { + print STDERR "(jeprof) "; + $_ = ; + last if ! defined $_ ; + s/\r//g; # turn windows-looking lines into unix-looking lines + + # Save some flags that might be reset by InteractiveCommand() + my $save_opt_lines = $main::opt_lines; + + if (!InteractiveCommand($orig_profile, $symbols, $libs, $total, $_)) { + last; # exit when we get an interactive command to quit + } + + # Restore flags + $main::opt_lines = $save_opt_lines; + } + } +} + +# Takes two args: orig profile, and command to run. +# Returns 1 if we should keep going, or 0 if we were asked to quit +sub InteractiveCommand { + my($orig_profile, $symbols, $libs, $total, $command) = @_; + $_ = $command; # just to make future m//'s easier + if (!defined($_)) { + print STDERR "\n"; + return 0; + } + if (m/^\s*quit/) { + return 0; + } + if (m/^\s*help/) { + InteractiveHelpMessage(); + return 1; + } + # Clear all the mode options -- mode is controlled by "$command" + $main::opt_text = 0; + $main::opt_callgrind = 0; + $main::opt_disasm = 0; + $main::opt_list = 0; + $main::opt_gv = 0; + $main::opt_evince = 0; + $main::opt_cum = 0; + + if (m/^\s*(text|top)(\d*)\s*(.*)/) { + $main::opt_text = 1; + + my $line_limit = ($2 ne "") ? int($2) : 10; + + my $routine; + my $ignore; + ($routine, $ignore) = ParseInteractiveArgs($3); + + my $profile = ProcessProfile($total, $orig_profile, $symbols, "", $ignore); + my $reduced = ReduceProfile($symbols, $profile); + + # Get derived profiles + my $flat = FlatProfile($reduced); + my $cumulative = CumulativeProfile($reduced); + + PrintText($symbols, $flat, $cumulative, $line_limit); + return 1; + } + if (m/^\s*callgrind\s*([^ \n]*)/) { + $main::opt_callgrind = 1; + + # Get derived profiles + my $calls = ExtractCalls($symbols, $orig_profile); + my $filename = $1; + if ( $1 eq '' ) { + $filename = TempName($main::next_tmpfile, "callgrind"); + } + PrintCallgrind($calls, $filename); + if ( $1 eq '' ) { + RunKcachegrind($filename, " & "); + $main::next_tmpfile++; + } + + return 1; + } + if (m/^\s*(web)?list\s*(.+)/) { + my $html = (defined($1) && ($1 eq "web")); + $main::opt_list = 1; + + my $routine; + my $ignore; + ($routine, $ignore) = ParseInteractiveArgs($2); + + my $profile = ProcessProfile($total, $orig_profile, $symbols, "", $ignore); + my $reduced = ReduceProfile($symbols, $profile); + + # Get derived profiles + my $flat = FlatProfile($reduced); + my $cumulative = CumulativeProfile($reduced); + + PrintListing($total, $libs, $flat, $cumulative, $routine, $html); + return 1; + } + if (m/^\s*disasm\s*(.+)/) { + $main::opt_disasm = 1; + + my $routine; + my $ignore; + ($routine, $ignore) = ParseInteractiveArgs($1); + + # Process current profile to account for various settings + my $profile = ProcessProfile($total, $orig_profile, $symbols, "", $ignore); + my $reduced = ReduceProfile($symbols, $profile); + + # Get derived profiles + my $flat = FlatProfile($reduced); + my $cumulative = CumulativeProfile($reduced); + + PrintDisassembly($libs, $flat, $cumulative, $routine); + return 1; + } + if (m/^\s*(gv|web|evince)\s*(.*)/) { + $main::opt_gv = 0; + $main::opt_evince = 0; + $main::opt_web = 0; + if ($1 eq "gv") { + $main::opt_gv = 1; + } elsif ($1 eq "evince") { + $main::opt_evince = 1; + } elsif ($1 eq "web") { + $main::opt_web = 1; + } + + my $focus; + my $ignore; + ($focus, $ignore) = ParseInteractiveArgs($2); + + # Process current profile to account for various settings + my $profile = ProcessProfile($total, $orig_profile, $symbols, + $focus, $ignore); + my $reduced = ReduceProfile($symbols, $profile); + + # Get derived profiles + my $flat = FlatProfile($reduced); + my $cumulative = CumulativeProfile($reduced); + + if (PrintDot($main::prog, $symbols, $profile, $flat, $cumulative, $total)) { + if ($main::opt_gv) { + RunGV(TempName($main::next_tmpfile, "ps"), " &"); + } elsif ($main::opt_evince) { + RunEvince(TempName($main::next_tmpfile, "pdf"), " &"); + } elsif ($main::opt_web) { + RunWeb(TempName($main::next_tmpfile, "svg")); + } + $main::next_tmpfile++; + } + return 1; + } + if (m/^\s*$/) { + return 1; + } + print STDERR "Unknown command: try 'help'.\n"; + return 1; +} + + +sub ProcessProfile { + my $total_count = shift; + my $orig_profile = shift; + my $symbols = shift; + my $focus = shift; + my $ignore = shift; + + # Process current profile to account for various settings + my $profile = $orig_profile; + printf("Total: %s %s\n", Unparse($total_count), Units()); + if ($focus ne '') { + $profile = FocusProfile($symbols, $profile, $focus); + my $focus_count = TotalProfile($profile); + printf("After focusing on '%s': %s %s of %s (%0.1f%%)\n", + $focus, + Unparse($focus_count), Units(), + Unparse($total_count), ($focus_count*100.0) / $total_count); + } + if ($ignore ne '') { + $profile = IgnoreProfile($symbols, $profile, $ignore); + my $ignore_count = TotalProfile($profile); + printf("After ignoring '%s': %s %s of %s (%0.1f%%)\n", + $ignore, + Unparse($ignore_count), Units(), + Unparse($total_count), + ($ignore_count*100.0) / $total_count); + } + + return $profile; +} + +sub InteractiveHelpMessage { + print STDERR <{$k}; + my @addrs = split(/\n/, $k); + if ($#addrs >= 0) { + my $depth = $#addrs + 1; + # int(foo / 2**32) is the only reliable way to get rid of bottom + # 32 bits on both 32- and 64-bit systems. + print pack('L*', $count & 0xFFFFFFFF, int($count / 2**32)); + print pack('L*', $depth & 0xFFFFFFFF, int($depth / 2**32)); + + foreach my $full_addr (@addrs) { + my $addr = $full_addr; + $addr =~ s/0x0*//; # strip off leading 0x, zeroes + if (length($addr) > 16) { + print STDERR "Invalid address in profile: $full_addr\n"; + next; + } + my $low_addr = substr($addr, -8); # get last 8 hex chars + my $high_addr = substr($addr, -16, 8); # get up to 8 more hex chars + print pack('L*', hex('0x' . $low_addr), hex('0x' . $high_addr)); + } + } + } +} + +# Print symbols and profile data +sub PrintSymbolizedProfile { + my $symbols = shift; + my $profile = shift; + my $prog = shift; + + $SYMBOL_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $symbol_marker = $&; + + print '--- ', $symbol_marker, "\n"; + if (defined($prog)) { + print 'binary=', $prog, "\n"; + } + while (my ($pc, $name) = each(%{$symbols})) { + my $sep = ' '; + print '0x', $pc; + # We have a list of function names, which include the inlined + # calls. They are separated (and terminated) by --, which is + # illegal in function names. + for (my $j = 2; $j <= $#{$name}; $j += 3) { + print $sep, $name->[$j]; + $sep = '--'; + } + print "\n"; + } + print '---', "\n"; + + my $profile_marker; + if ($main::profile_type eq 'heap') { + $HEAP_PAGE =~ m,[^/]+$,; # matches everything after the last slash + $profile_marker = $&; + } elsif ($main::profile_type eq 'growth') { + $GROWTH_PAGE =~ m,[^/]+$,; # matches everything after the last slash + $profile_marker = $&; + } elsif ($main::profile_type eq 'contention') { + $CONTENTION_PAGE =~ m,[^/]+$,; # matches everything after the last slash + $profile_marker = $&; + } else { # elsif ($main::profile_type eq 'cpu') + $PROFILE_PAGE =~ m,[^/]+$,; # matches everything after the last slash + $profile_marker = $&; + } + + print '--- ', $profile_marker, "\n"; + if (defined($main::collected_profile)) { + # if used with remote fetch, simply dump the collected profile to output. + open(SRC, "<$main::collected_profile"); + while () { + print $_; + } + close(SRC); + } else { + # --raw/http: For everything to work correctly for non-remote profiles, we + # would need to extend PrintProfileData() to handle all possible profile + # types, re-enable the code that is currently disabled in ReadCPUProfile() + # and FixCallerAddresses(), and remove the remote profile dumping code in + # the block above. + die "--raw/http: jeprof can only dump remote profiles for --raw\n"; + # dump a cpu-format profile to standard out + PrintProfileData($profile); + } +} + +# Print text output +sub PrintText { + my $symbols = shift; + my $flat = shift; + my $cumulative = shift; + my $line_limit = shift; + + my $total = TotalProfile($flat); + + # Which profile to sort by? + my $s = $main::opt_cum ? $cumulative : $flat; + + my $running_sum = 0; + my $lines = 0; + foreach my $k (sort { GetEntry($s, $b) <=> GetEntry($s, $a) || $a cmp $b } + keys(%{$cumulative})) { + my $f = GetEntry($flat, $k); + my $c = GetEntry($cumulative, $k); + $running_sum += $f; + + my $sym = $k; + if (exists($symbols->{$k})) { + $sym = $symbols->{$k}->[0] . " " . $symbols->{$k}->[1]; + if ($main::opt_addresses) { + $sym = $k . " " . $sym; + } + } + + if ($f != 0 || $c != 0) { + printf("%8s %6s %6s %8s %6s %s\n", + Unparse($f), + Percent($f, $total), + Percent($running_sum, $total), + Unparse($c), + Percent($c, $total), + $sym); + } + $lines++; + last if ($line_limit >= 0 && $lines >= $line_limit); + } +} + +# Callgrind format has a compression for repeated function and file +# names. You show the name the first time, and just use its number +# subsequently. This can cut down the file to about a third or a +# quarter of its uncompressed size. $key and $val are the key/value +# pair that would normally be printed by callgrind; $map is a map from +# value to number. +sub CompressedCGName { + my($key, $val, $map) = @_; + my $idx = $map->{$val}; + # For very short keys, providing an index hurts rather than helps. + if (length($val) <= 3) { + return "$key=$val\n"; + } elsif (defined($idx)) { + return "$key=($idx)\n"; + } else { + # scalar(keys $map) gives the number of items in the map. + $idx = scalar(keys(%{$map})) + 1; + $map->{$val} = $idx; + return "$key=($idx) $val\n"; + } +} + +# Print the call graph in a way that's suiteable for callgrind. +sub PrintCallgrind { + my $calls = shift; + my $filename; + my %filename_to_index_map; + my %fnname_to_index_map; + + if ($main::opt_interactive) { + $filename = shift; + print STDERR "Writing callgrind file to '$filename'.\n" + } else { + $filename = "&STDOUT"; + } + open(CG, ">$filename"); + printf CG ("events: Hits\n\n"); + foreach my $call ( map { $_->[0] } + sort { $a->[1] cmp $b ->[1] || + $a->[2] <=> $b->[2] } + map { /([^:]+):(\d+):([^ ]+)( -> ([^:]+):(\d+):(.+))?/; + [$_, $1, $2] } + keys %$calls ) { + my $count = int($calls->{$call}); + $call =~ /([^:]+):(\d+):([^ ]+)( -> ([^:]+):(\d+):(.+))?/; + my ( $caller_file, $caller_line, $caller_function, + $callee_file, $callee_line, $callee_function ) = + ( $1, $2, $3, $5, $6, $7 ); + + # TODO(csilvers): for better compression, collect all the + # caller/callee_files and functions first, before printing + # anything, and only compress those referenced more than once. + printf CG CompressedCGName("fl", $caller_file, \%filename_to_index_map); + printf CG CompressedCGName("fn", $caller_function, \%fnname_to_index_map); + if (defined $6) { + printf CG CompressedCGName("cfl", $callee_file, \%filename_to_index_map); + printf CG CompressedCGName("cfn", $callee_function, \%fnname_to_index_map); + printf CG ("calls=$count $callee_line\n"); + } + printf CG ("$caller_line $count\n\n"); + } +} + +# Print disassembly for all all routines that match $main::opt_disasm +sub PrintDisassembly { + my $libs = shift; + my $flat = shift; + my $cumulative = shift; + my $disasm_opts = shift; + + my $total = TotalProfile($flat); + + foreach my $lib (@{$libs}) { + my $symbol_table = GetProcedureBoundaries($lib->[0], $disasm_opts); + my $offset = AddressSub($lib->[1], $lib->[3]); + foreach my $routine (sort ByName keys(%{$symbol_table})) { + my $start_addr = $symbol_table->{$routine}->[0]; + my $end_addr = $symbol_table->{$routine}->[1]; + # See if there are any samples in this routine + my $length = hex(AddressSub($end_addr, $start_addr)); + my $addr = AddressAdd($start_addr, $offset); + for (my $i = 0; $i < $length; $i++) { + if (defined($cumulative->{$addr})) { + PrintDisassembledFunction($lib->[0], $offset, + $routine, $flat, $cumulative, + $start_addr, $end_addr, $total); + last; + } + $addr = AddressInc($addr); + } + } + } +} + +# Return reference to array of tuples of the form: +# [start_address, filename, linenumber, instruction, limit_address] +# E.g., +# ["0x806c43d", "/foo/bar.cc", 131, "ret", "0x806c440"] +sub Disassemble { + my $prog = shift; + my $offset = shift; + my $start_addr = shift; + my $end_addr = shift; + + my $objdump = $obj_tool_map{"objdump"}; + my $cmd = ShellEscape($objdump, "-C", "-d", "-l", "--no-show-raw-insn", + "--start-address=0x$start_addr", + "--stop-address=0x$end_addr", $prog); + open(OBJDUMP, "$cmd |") || error("$cmd: $!\n"); + my @result = (); + my $filename = ""; + my $linenumber = -1; + my $last = ["", "", "", ""]; + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + chop; + if (m|\s*([^:\s]+):(\d+)\s*$|) { + # Location line of the form: + # : + $filename = $1; + $linenumber = $2; + } elsif (m/^ +([0-9a-f]+):\s*(.*)/) { + # Disassembly line -- zero-extend address to full length + my $addr = HexExtend($1); + my $k = AddressAdd($addr, $offset); + $last->[4] = $k; # Store ending address for previous instruction + $last = [$k, $filename, $linenumber, $2, $end_addr]; + push(@result, $last); + } + } + close(OBJDUMP); + return @result; +} + +# The input file should contain lines of the form /proc/maps-like +# output (same format as expected from the profiles) or that looks +# like hex addresses (like "0xDEADBEEF"). We will parse all +# /proc/maps output, and for all the hex addresses, we will output +# "short" symbol names, one per line, in the same order as the input. +sub PrintSymbols { + my $maps_and_symbols_file = shift; + + # ParseLibraries expects pcs to be in a set. Fine by us... + my @pclist = (); # pcs in sorted order + my $pcs = {}; + my $map = ""; + foreach my $line (<$maps_and_symbols_file>) { + $line =~ s/\r//g; # turn windows-looking lines into unix-looking lines + if ($line =~ /\b(0x[0-9a-f]+)\b/i) { + push(@pclist, HexExtend($1)); + $pcs->{$pclist[-1]} = 1; + } else { + $map .= $line; + } + } + + my $libs = ParseLibraries($main::prog, $map, $pcs); + my $symbols = ExtractSymbols($libs, $pcs); + + foreach my $pc (@pclist) { + # ->[0] is the shortname, ->[2] is the full name + print(($symbols->{$pc}->[0] || "??") . "\n"); + } +} + + +# For sorting functions by name +sub ByName { + return ShortFunctionName($a) cmp ShortFunctionName($b); +} + +# Print source-listing for all all routines that match $list_opts +sub PrintListing { + my $total = shift; + my $libs = shift; + my $flat = shift; + my $cumulative = shift; + my $list_opts = shift; + my $html = shift; + + my $output = \*STDOUT; + my $fname = ""; + + if ($html) { + # Arrange to write the output to a temporary file + $fname = TempName($main::next_tmpfile, "html"); + $main::next_tmpfile++; + if (!open(TEMP, ">$fname")) { + print STDERR "$fname: $!\n"; + return; + } + $output = \*TEMP; + print $output HtmlListingHeader(); + printf $output ("
%s
Total: %s %s
\n", + $main::prog, Unparse($total), Units()); + } + + my $listed = 0; + foreach my $lib (@{$libs}) { + my $symbol_table = GetProcedureBoundaries($lib->[0], $list_opts); + my $offset = AddressSub($lib->[1], $lib->[3]); + foreach my $routine (sort ByName keys(%{$symbol_table})) { + # Print if there are any samples in this routine + my $start_addr = $symbol_table->{$routine}->[0]; + my $end_addr = $symbol_table->{$routine}->[1]; + my $length = hex(AddressSub($end_addr, $start_addr)); + my $addr = AddressAdd($start_addr, $offset); + for (my $i = 0; $i < $length; $i++) { + if (defined($cumulative->{$addr})) { + $listed += PrintSource( + $lib->[0], $offset, + $routine, $flat, $cumulative, + $start_addr, $end_addr, + $html, + $output); + last; + } + $addr = AddressInc($addr); + } + } + } + + if ($html) { + if ($listed > 0) { + print $output HtmlListingFooter(); + close($output); + RunWeb($fname); + } else { + close($output); + unlink($fname); + } + } +} + +sub HtmlListingHeader { + return <<'EOF'; + + + +Pprof listing + + + + +EOF +} + +sub HtmlListingFooter { + return <<'EOF'; + + +EOF +} + +sub HtmlEscape { + my $text = shift; + $text =~ s/&/&/g; + $text =~ s//>/g; + return $text; +} + +# Returns the indentation of the line, if it has any non-whitespace +# characters. Otherwise, returns -1. +sub Indentation { + my $line = shift; + if (m/^(\s*)\S/) { + return length($1); + } else { + return -1; + } +} + +# If the symbol table contains inlining info, Disassemble() may tag an +# instruction with a location inside an inlined function. But for +# source listings, we prefer to use the location in the function we +# are listing. So use MapToSymbols() to fetch full location +# information for each instruction and then pick out the first +# location from a location list (location list contains callers before +# callees in case of inlining). +# +# After this routine has run, each entry in $instructions contains: +# [0] start address +# [1] filename for function we are listing +# [2] line number for function we are listing +# [3] disassembly +# [4] limit address +# [5] most specific filename (may be different from [1] due to inlining) +# [6] most specific line number (may be different from [2] due to inlining) +sub GetTopLevelLineNumbers { + my ($lib, $offset, $instructions) = @_; + my $pcs = []; + for (my $i = 0; $i <= $#{$instructions}; $i++) { + push(@{$pcs}, $instructions->[$i]->[0]); + } + my $symbols = {}; + MapToSymbols($lib, $offset, $pcs, $symbols); + for (my $i = 0; $i <= $#{$instructions}; $i++) { + my $e = $instructions->[$i]; + push(@{$e}, $e->[1]); + push(@{$e}, $e->[2]); + my $addr = $e->[0]; + my $sym = $symbols->{$addr}; + if (defined($sym)) { + if ($#{$sym} >= 2 && $sym->[1] =~ m/^(.*):(\d+)$/) { + $e->[1] = $1; # File name + $e->[2] = $2; # Line number + } + } + } +} + +# Print source-listing for one routine +sub PrintSource { + my $prog = shift; + my $offset = shift; + my $routine = shift; + my $flat = shift; + my $cumulative = shift; + my $start_addr = shift; + my $end_addr = shift; + my $html = shift; + my $output = shift; + + # Disassemble all instructions (just to get line numbers) + my @instructions = Disassemble($prog, $offset, $start_addr, $end_addr); + GetTopLevelLineNumbers($prog, $offset, \@instructions); + + # Hack 1: assume that the first source file encountered in the + # disassembly contains the routine + my $filename = undef; + for (my $i = 0; $i <= $#instructions; $i++) { + if ($instructions[$i]->[2] >= 0) { + $filename = $instructions[$i]->[1]; + last; + } + } + if (!defined($filename)) { + print STDERR "no filename found in $routine\n"; + return 0; + } + + # Hack 2: assume that the largest line number from $filename is the + # end of the procedure. This is typically safe since if P1 contains + # an inlined call to P2, then P2 usually occurs earlier in the + # source file. If this does not work, we might have to compute a + # density profile or just print all regions we find. + my $lastline = 0; + for (my $i = 0; $i <= $#instructions; $i++) { + my $f = $instructions[$i]->[1]; + my $l = $instructions[$i]->[2]; + if (($f eq $filename) && ($l > $lastline)) { + $lastline = $l; + } + } + + # Hack 3: assume the first source location from "filename" is the start of + # the source code. + my $firstline = 1; + for (my $i = 0; $i <= $#instructions; $i++) { + if ($instructions[$i]->[1] eq $filename) { + $firstline = $instructions[$i]->[2]; + last; + } + } + + # Hack 4: Extend last line forward until its indentation is less than + # the indentation we saw on $firstline + my $oldlastline = $lastline; + { + if (!open(FILE, "<$filename")) { + print STDERR "$filename: $!\n"; + return 0; + } + my $l = 0; + my $first_indentation = -1; + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + $l++; + my $indent = Indentation($_); + if ($l >= $firstline) { + if ($first_indentation < 0 && $indent >= 0) { + $first_indentation = $indent; + last if ($first_indentation == 0); + } + } + if ($l >= $lastline && $indent >= 0) { + if ($indent >= $first_indentation) { + $lastline = $l+1; + } else { + last; + } + } + } + close(FILE); + } + + # Assign all samples to the range $firstline,$lastline, + # Hack 4: If an instruction does not occur in the range, its samples + # are moved to the next instruction that occurs in the range. + my $samples1 = {}; # Map from line number to flat count + my $samples2 = {}; # Map from line number to cumulative count + my $running1 = 0; # Unassigned flat counts + my $running2 = 0; # Unassigned cumulative counts + my $total1 = 0; # Total flat counts + my $total2 = 0; # Total cumulative counts + my %disasm = (); # Map from line number to disassembly + my $running_disasm = ""; # Unassigned disassembly + my $skip_marker = "---\n"; + if ($html) { + $skip_marker = ""; + for (my $l = $firstline; $l <= $lastline; $l++) { + $disasm{$l} = ""; + } + } + my $last_dis_filename = ''; + my $last_dis_linenum = -1; + my $last_touched_line = -1; # To detect gaps in disassembly for a line + foreach my $e (@instructions) { + # Add up counts for all address that fall inside this instruction + my $c1 = 0; + my $c2 = 0; + for (my $a = $e->[0]; $a lt $e->[4]; $a = AddressInc($a)) { + $c1 += GetEntry($flat, $a); + $c2 += GetEntry($cumulative, $a); + } + + if ($html) { + my $dis = sprintf(" %6s %6s \t\t%8s: %s ", + HtmlPrintNumber($c1), + HtmlPrintNumber($c2), + UnparseAddress($offset, $e->[0]), + CleanDisassembly($e->[3])); + + # Append the most specific source line associated with this instruction + if (length($dis) < 80) { $dis .= (' ' x (80 - length($dis))) }; + $dis = HtmlEscape($dis); + my $f = $e->[5]; + my $l = $e->[6]; + if ($f ne $last_dis_filename) { + $dis .= sprintf("%s:%d", + HtmlEscape(CleanFileName($f)), $l); + } elsif ($l ne $last_dis_linenum) { + # De-emphasize the unchanged file name portion + $dis .= sprintf("%s" . + ":%d", + HtmlEscape(CleanFileName($f)), $l); + } else { + # De-emphasize the entire location + $dis .= sprintf("%s:%d", + HtmlEscape(CleanFileName($f)), $l); + } + $last_dis_filename = $f; + $last_dis_linenum = $l; + $running_disasm .= $dis; + $running_disasm .= "\n"; + } + + $running1 += $c1; + $running2 += $c2; + $total1 += $c1; + $total2 += $c2; + my $file = $e->[1]; + my $line = $e->[2]; + if (($file eq $filename) && + ($line >= $firstline) && + ($line <= $lastline)) { + # Assign all accumulated samples to this line + AddEntry($samples1, $line, $running1); + AddEntry($samples2, $line, $running2); + $running1 = 0; + $running2 = 0; + if ($html) { + if ($line != $last_touched_line && $disasm{$line} ne '') { + $disasm{$line} .= "\n"; + } + $disasm{$line} .= $running_disasm; + $running_disasm = ''; + $last_touched_line = $line; + } + } + } + + # Assign any leftover samples to $lastline + AddEntry($samples1, $lastline, $running1); + AddEntry($samples2, $lastline, $running2); + if ($html) { + if ($lastline != $last_touched_line && $disasm{$lastline} ne '') { + $disasm{$lastline} .= "\n"; + } + $disasm{$lastline} .= $running_disasm; + } + + if ($html) { + printf $output ( + "

%s

%s\n
\n" .
+      "Total:%6s %6s (flat / cumulative %s)\n",
+      HtmlEscape(ShortFunctionName($routine)),
+      HtmlEscape(CleanFileName($filename)),
+      Unparse($total1),
+      Unparse($total2),
+      Units());
+  } else {
+    printf $output (
+      "ROUTINE ====================== %s in %s\n" .
+      "%6s %6s Total %s (flat / cumulative)\n",
+      ShortFunctionName($routine),
+      CleanFileName($filename),
+      Unparse($total1),
+      Unparse($total2),
+      Units());
+  }
+  if (!open(FILE, "<$filename")) {
+    print STDERR "$filename: $!\n";
+    return 0;
+  }
+  my $l = 0;
+  while () {
+    s/\r//g;         # turn windows-looking lines into unix-looking lines
+    $l++;
+    if ($l >= $firstline - 5 &&
+        (($l <= $oldlastline + 5) || ($l <= $lastline))) {
+      chop;
+      my $text = $_;
+      if ($l == $firstline) { print $output $skip_marker; }
+      my $n1 = GetEntry($samples1, $l);
+      my $n2 = GetEntry($samples2, $l);
+      if ($html) {
+        # Emit a span that has one of the following classes:
+        #    livesrc -- has samples
+        #    deadsrc -- has disassembly, but with no samples
+        #    nop     -- has no matching disasembly
+        # Also emit an optional span containing disassembly.
+        my $dis = $disasm{$l};
+        my $asm = "";
+        if (defined($dis) && $dis ne '') {
+          $asm = "" . $dis . "";
+        }
+        my $source_class = (($n1 + $n2 > 0)
+                            ? "livesrc"
+                            : (($asm ne "") ? "deadsrc" : "nop"));
+        printf $output (
+          "%5d " .
+          "%6s %6s %s%s\n",
+          $l, $source_class,
+          HtmlPrintNumber($n1),
+          HtmlPrintNumber($n2),
+          HtmlEscape($text),
+          $asm);
+      } else {
+        printf $output(
+          "%6s %6s %4d: %s\n",
+          UnparseAlt($n1),
+          UnparseAlt($n2),
+          $l,
+          $text);
+      }
+      if ($l == $lastline)  { print $output $skip_marker; }
+    };
+  }
+  close(FILE);
+  if ($html) {
+    print $output "
\n"; + } + return 1; +} + +# Return the source line for the specified file/linenumber. +# Returns undef if not found. +sub SourceLine { + my $file = shift; + my $line = shift; + + # Look in cache + if (!defined($main::source_cache{$file})) { + if (100 < scalar keys(%main::source_cache)) { + # Clear the cache when it gets too big + $main::source_cache = (); + } + + # Read all lines from the file + if (!open(FILE, "<$file")) { + print STDERR "$file: $!\n"; + $main::source_cache{$file} = []; # Cache the negative result + return undef; + } + my $lines = []; + push(@{$lines}, ""); # So we can use 1-based line numbers as indices + while () { + push(@{$lines}, $_); + } + close(FILE); + + # Save the lines in the cache + $main::source_cache{$file} = $lines; + } + + my $lines = $main::source_cache{$file}; + if (($line < 0) || ($line > $#{$lines})) { + return undef; + } else { + return $lines->[$line]; + } +} + +# Print disassembly for one routine with interspersed source if available +sub PrintDisassembledFunction { + my $prog = shift; + my $offset = shift; + my $routine = shift; + my $flat = shift; + my $cumulative = shift; + my $start_addr = shift; + my $end_addr = shift; + my $total = shift; + + # Disassemble all instructions + my @instructions = Disassemble($prog, $offset, $start_addr, $end_addr); + + # Make array of counts per instruction + my @flat_count = (); + my @cum_count = (); + my $flat_total = 0; + my $cum_total = 0; + foreach my $e (@instructions) { + # Add up counts for all address that fall inside this instruction + my $c1 = 0; + my $c2 = 0; + for (my $a = $e->[0]; $a lt $e->[4]; $a = AddressInc($a)) { + $c1 += GetEntry($flat, $a); + $c2 += GetEntry($cumulative, $a); + } + push(@flat_count, $c1); + push(@cum_count, $c2); + $flat_total += $c1; + $cum_total += $c2; + } + + # Print header with total counts + printf("ROUTINE ====================== %s\n" . + "%6s %6s %s (flat, cumulative) %.1f%% of total\n", + ShortFunctionName($routine), + Unparse($flat_total), + Unparse($cum_total), + Units(), + ($cum_total * 100.0) / $total); + + # Process instructions in order + my $current_file = ""; + for (my $i = 0; $i <= $#instructions; ) { + my $e = $instructions[$i]; + + # Print the new file name whenever we switch files + if ($e->[1] ne $current_file) { + $current_file = $e->[1]; + my $fname = $current_file; + $fname =~ s|^\./||; # Trim leading "./" + + # Shorten long file names + if (length($fname) >= 58) { + $fname = "..." . substr($fname, -55); + } + printf("-------------------- %s\n", $fname); + } + + # TODO: Compute range of lines to print together to deal with + # small reorderings. + my $first_line = $e->[2]; + my $last_line = $first_line; + my %flat_sum = (); + my %cum_sum = (); + for (my $l = $first_line; $l <= $last_line; $l++) { + $flat_sum{$l} = 0; + $cum_sum{$l} = 0; + } + + # Find run of instructions for this range of source lines + my $first_inst = $i; + while (($i <= $#instructions) && + ($instructions[$i]->[2] >= $first_line) && + ($instructions[$i]->[2] <= $last_line)) { + $e = $instructions[$i]; + $flat_sum{$e->[2]} += $flat_count[$i]; + $cum_sum{$e->[2]} += $cum_count[$i]; + $i++; + } + my $last_inst = $i - 1; + + # Print source lines + for (my $l = $first_line; $l <= $last_line; $l++) { + my $line = SourceLine($current_file, $l); + if (!defined($line)) { + $line = "?\n"; + next; + } else { + $line =~ s/^\s+//; + } + printf("%6s %6s %5d: %s", + UnparseAlt($flat_sum{$l}), + UnparseAlt($cum_sum{$l}), + $l, + $line); + } + + # Print disassembly + for (my $x = $first_inst; $x <= $last_inst; $x++) { + my $e = $instructions[$x]; + printf("%6s %6s %8s: %6s\n", + UnparseAlt($flat_count[$x]), + UnparseAlt($cum_count[$x]), + UnparseAddress($offset, $e->[0]), + CleanDisassembly($e->[3])); + } + } +} + +# Print DOT graph +sub PrintDot { + my $prog = shift; + my $symbols = shift; + my $raw = shift; + my $flat = shift; + my $cumulative = shift; + my $overall_total = shift; + + # Get total + my $local_total = TotalProfile($flat); + my $nodelimit = int($main::opt_nodefraction * $local_total); + my $edgelimit = int($main::opt_edgefraction * $local_total); + my $nodecount = $main::opt_nodecount; + + # Find nodes to include + my @list = (sort { abs(GetEntry($cumulative, $b)) <=> + abs(GetEntry($cumulative, $a)) + || $a cmp $b } + keys(%{$cumulative})); + my $last = $nodecount - 1; + if ($last > $#list) { + $last = $#list; + } + while (($last >= 0) && + (abs(GetEntry($cumulative, $list[$last])) <= $nodelimit)) { + $last--; + } + if ($last < 0) { + print STDERR "No nodes to print\n"; + return 0; + } + + if ($nodelimit > 0 || $edgelimit > 0) { + printf STDERR ("Dropping nodes with <= %s %s; edges with <= %s abs(%s)\n", + Unparse($nodelimit), Units(), + Unparse($edgelimit), Units()); + } + + # Open DOT output file + my $output; + my $escaped_dot = ShellEscape(@DOT); + my $escaped_ps2pdf = ShellEscape(@PS2PDF); + if ($main::opt_gv) { + my $escaped_outfile = ShellEscape(TempName($main::next_tmpfile, "ps")); + $output = "| $escaped_dot -Tps2 >$escaped_outfile"; + } elsif ($main::opt_evince) { + my $escaped_outfile = ShellEscape(TempName($main::next_tmpfile, "pdf")); + $output = "| $escaped_dot -Tps2 | $escaped_ps2pdf - $escaped_outfile"; + } elsif ($main::opt_ps) { + $output = "| $escaped_dot -Tps2"; + } elsif ($main::opt_pdf) { + $output = "| $escaped_dot -Tps2 | $escaped_ps2pdf - -"; + } elsif ($main::opt_web || $main::opt_svg) { + # We need to post-process the SVG, so write to a temporary file always. + my $escaped_outfile = ShellEscape(TempName($main::next_tmpfile, "svg")); + $output = "| $escaped_dot -Tsvg >$escaped_outfile"; + } elsif ($main::opt_gif) { + $output = "| $escaped_dot -Tgif"; + } else { + $output = ">&STDOUT"; + } + open(DOT, $output) || error("$output: $!\n"); + + # Title + printf DOT ("digraph \"%s; %s %s\" {\n", + $prog, + Unparse($overall_total), + Units()); + if ($main::opt_pdf) { + # The output is more printable if we set the page size for dot. + printf DOT ("size=\"8,11\"\n"); + } + printf DOT ("node [width=0.375,height=0.25];\n"); + + # Print legend + printf DOT ("Legend [shape=box,fontsize=24,shape=plaintext," . + "label=\"%s\\l%s\\l%s\\l%s\\l%s\\l\"];\n", + $prog, + sprintf("Total %s: %s", Units(), Unparse($overall_total)), + sprintf("Focusing on: %s", Unparse($local_total)), + sprintf("Dropped nodes with <= %s abs(%s)", + Unparse($nodelimit), Units()), + sprintf("Dropped edges with <= %s %s", + Unparse($edgelimit), Units()) + ); + + # Print nodes + my %node = (); + my $nextnode = 1; + foreach my $a (@list[0..$last]) { + # Pick font size + my $f = GetEntry($flat, $a); + my $c = GetEntry($cumulative, $a); + + my $fs = 8; + if ($local_total > 0) { + $fs = 8 + (50.0 * sqrt(abs($f * 1.0 / $local_total))); + } + + $node{$a} = $nextnode++; + my $sym = $a; + $sym =~ s/\s+/\\n/g; + $sym =~ s/::/\\n/g; + + # Extra cumulative info to print for non-leaves + my $extra = ""; + if ($f != $c) { + $extra = sprintf("\\rof %s (%s)", + Unparse($c), + Percent($c, $local_total)); + } + my $style = ""; + if ($main::opt_heapcheck) { + if ($f > 0) { + # make leak-causing nodes more visible (add a background) + $style = ",style=filled,fillcolor=gray" + } elsif ($f < 0) { + # make anti-leak-causing nodes (which almost never occur) + # stand out as well (triple border) + $style = ",peripheries=3" + } + } + + printf DOT ("N%d [label=\"%s\\n%s (%s)%s\\r" . + "\",shape=box,fontsize=%.1f%s];\n", + $node{$a}, + $sym, + Unparse($f), + Percent($f, $local_total), + $extra, + $fs, + $style, + ); + } + + # Get edges and counts per edge + my %edge = (); + my $n; + my $fullname_to_shortname_map = {}; + FillFullnameToShortnameMap($symbols, $fullname_to_shortname_map); + foreach my $k (keys(%{$raw})) { + # TODO: omit low %age edges + $n = $raw->{$k}; + my @translated = TranslateStack($symbols, $fullname_to_shortname_map, $k); + for (my $i = 1; $i <= $#translated; $i++) { + my $src = $translated[$i]; + my $dst = $translated[$i-1]; + #next if ($src eq $dst); # Avoid self-edges? + if (exists($node{$src}) && exists($node{$dst})) { + my $edge_label = "$src\001$dst"; + if (!exists($edge{$edge_label})) { + $edge{$edge_label} = 0; + } + $edge{$edge_label} += $n; + } + } + } + + # Print edges (process in order of decreasing counts) + my %indegree = (); # Number of incoming edges added per node so far + my %outdegree = (); # Number of outgoing edges added per node so far + foreach my $e (sort { $edge{$b} <=> $edge{$a} } keys(%edge)) { + my @x = split(/\001/, $e); + $n = $edge{$e}; + + # Initialize degree of kept incoming and outgoing edges if necessary + my $src = $x[0]; + my $dst = $x[1]; + if (!exists($outdegree{$src})) { $outdegree{$src} = 0; } + if (!exists($indegree{$dst})) { $indegree{$dst} = 0; } + + my $keep; + if ($indegree{$dst} == 0) { + # Keep edge if needed for reachability + $keep = 1; + } elsif (abs($n) <= $edgelimit) { + # Drop if we are below --edgefraction + $keep = 0; + } elsif ($outdegree{$src} >= $main::opt_maxdegree || + $indegree{$dst} >= $main::opt_maxdegree) { + # Keep limited number of in/out edges per node + $keep = 0; + } else { + $keep = 1; + } + + if ($keep) { + $outdegree{$src}++; + $indegree{$dst}++; + + # Compute line width based on edge count + my $fraction = abs($local_total ? (3 * ($n / $local_total)) : 0); + if ($fraction > 1) { $fraction = 1; } + my $w = $fraction * 2; + if ($w < 1 && ($main::opt_web || $main::opt_svg)) { + # SVG output treats line widths < 1 poorly. + $w = 1; + } + + # Dot sometimes segfaults if given edge weights that are too large, so + # we cap the weights at a large value + my $edgeweight = abs($n) ** 0.7; + if ($edgeweight > 100000) { $edgeweight = 100000; } + $edgeweight = int($edgeweight); + + my $style = sprintf("setlinewidth(%f)", $w); + if ($x[1] =~ m/\(inline\)/) { + $style .= ",dashed"; + } + + # Use a slightly squashed function of the edge count as the weight + printf DOT ("N%s -> N%s [label=%s, weight=%d, style=\"%s\"];\n", + $node{$x[0]}, + $node{$x[1]}, + Unparse($n), + $edgeweight, + $style); + } + } + + print DOT ("}\n"); + close(DOT); + + if ($main::opt_web || $main::opt_svg) { + # Rewrite SVG to be more usable inside web browser. + RewriteSvg(TempName($main::next_tmpfile, "svg")); + } + + return 1; +} + +sub RewriteSvg { + my $svgfile = shift; + + open(SVG, $svgfile) || die "open temp svg: $!"; + my @svg = ; + close(SVG); + unlink $svgfile; + my $svg = join('', @svg); + + # Dot's SVG output is + # + # + # + # ... + # + # + # + # Change it to + # + # + # $svg_javascript + # + # + # ... + # + # + # + + # Fix width, height; drop viewBox. + $svg =~ s/(?s) above first + my $svg_javascript = SvgJavascript(); + my $viewport = "\n"; + $svg =~ s/ above . + $svg =~ s/(.*)(<\/svg>)/$1<\/g>$2/; + $svg =~ s/$svgfile") || die "open $svgfile: $!"; + print SVG $svg; + close(SVG); + } +} + +sub SvgJavascript { + return <<'EOF'; + +EOF +} + +# Provides a map from fullname to shortname for cases where the +# shortname is ambiguous. The symlist has both the fullname and +# shortname for all symbols, which is usually fine, but sometimes -- +# such as overloaded functions -- two different fullnames can map to +# the same shortname. In that case, we use the address of the +# function to disambiguate the two. This function fills in a map that +# maps fullnames to modified shortnames in such cases. If a fullname +# is not present in the map, the 'normal' shortname provided by the +# symlist is the appropriate one to use. +sub FillFullnameToShortnameMap { + my $symbols = shift; + my $fullname_to_shortname_map = shift; + my $shortnames_seen_once = {}; + my $shortnames_seen_more_than_once = {}; + + foreach my $symlist (values(%{$symbols})) { + # TODO(csilvers): deal with inlined symbols too. + my $shortname = $symlist->[0]; + my $fullname = $symlist->[2]; + if ($fullname !~ /<[0-9a-fA-F]+>$/) { # fullname doesn't end in an address + next; # the only collisions we care about are when addresses differ + } + if (defined($shortnames_seen_once->{$shortname}) && + $shortnames_seen_once->{$shortname} ne $fullname) { + $shortnames_seen_more_than_once->{$shortname} = 1; + } else { + $shortnames_seen_once->{$shortname} = $fullname; + } + } + + foreach my $symlist (values(%{$symbols})) { + my $shortname = $symlist->[0]; + my $fullname = $symlist->[2]; + # TODO(csilvers): take in a list of addresses we care about, and only + # store in the map if $symlist->[1] is in that list. Saves space. + next if defined($fullname_to_shortname_map->{$fullname}); + if (defined($shortnames_seen_more_than_once->{$shortname})) { + if ($fullname =~ /<0*([^>]*)>$/) { # fullname has address at end of it + $fullname_to_shortname_map->{$fullname} = "$shortname\@$1"; + } + } + } +} + +# Return a small number that identifies the argument. +# Multiple calls with the same argument will return the same number. +# Calls with different arguments will return different numbers. +sub ShortIdFor { + my $key = shift; + my $id = $main::uniqueid{$key}; + if (!defined($id)) { + $id = keys(%main::uniqueid) + 1; + $main::uniqueid{$key} = $id; + } + return $id; +} + +# Translate a stack of addresses into a stack of symbols +sub TranslateStack { + my $symbols = shift; + my $fullname_to_shortname_map = shift; + my $k = shift; + + my @addrs = split(/\n/, $k); + my @result = (); + for (my $i = 0; $i <= $#addrs; $i++) { + my $a = $addrs[$i]; + + # Skip large addresses since they sometimes show up as fake entries on RH9 + if (length($a) > 8 && $a gt "7fffffffffffffff") { + next; + } + + if ($main::opt_disasm || $main::opt_list) { + # We want just the address for the key + push(@result, $a); + next; + } + + my $symlist = $symbols->{$a}; + if (!defined($symlist)) { + $symlist = [$a, "", $a]; + } + + # We can have a sequence of symbols for a particular entry + # (more than one symbol in the case of inlining). Callers + # come before callees in symlist, so walk backwards since + # the translated stack should contain callees before callers. + for (my $j = $#{$symlist}; $j >= 2; $j -= 3) { + my $func = $symlist->[$j-2]; + my $fileline = $symlist->[$j-1]; + my $fullfunc = $symlist->[$j]; + if (defined($fullname_to_shortname_map->{$fullfunc})) { + $func = $fullname_to_shortname_map->{$fullfunc}; + } + if ($j > 2) { + $func = "$func (inline)"; + } + + # Do not merge nodes corresponding to Callback::Run since that + # causes confusing cycles in dot display. Instead, we synthesize + # a unique name for this frame per caller. + if ($func =~ m/Callback.*::Run$/) { + my $caller = ($i > 0) ? $addrs[$i-1] : 0; + $func = "Run#" . ShortIdFor($caller); + } + + if ($main::opt_addresses) { + push(@result, "$a $func $fileline"); + } elsif ($main::opt_lines) { + if ($func eq '??' && $fileline eq '??:0') { + push(@result, "$a"); + } else { + push(@result, "$func $fileline"); + } + } elsif ($main::opt_functions) { + if ($func eq '??') { + push(@result, "$a"); + } else { + push(@result, $func); + } + } elsif ($main::opt_files) { + if ($fileline eq '??:0' || $fileline eq '') { + push(@result, "$a"); + } else { + my $f = $fileline; + $f =~ s/:\d+$//; + push(@result, $f); + } + } else { + push(@result, $a); + last; # Do not print inlined info + } + } + } + + # print join(",", @addrs), " => ", join(",", @result), "\n"; + return @result; +} + +# Generate percent string for a number and a total +sub Percent { + my $num = shift; + my $tot = shift; + if ($tot != 0) { + return sprintf("%.1f%%", $num * 100.0 / $tot); + } else { + return ($num == 0) ? "nan" : (($num > 0) ? "+inf" : "-inf"); + } +} + +# Generate pretty-printed form of number +sub Unparse { + my $num = shift; + if ($main::profile_type eq 'heap' || $main::profile_type eq 'growth') { + if ($main::opt_inuse_objects || $main::opt_alloc_objects) { + return sprintf("%d", $num); + } else { + if ($main::opt_show_bytes) { + return sprintf("%d", $num); + } else { + return sprintf("%.1f", $num / 1048576.0); + } + } + } elsif ($main::profile_type eq 'contention' && !$main::opt_contentions) { + return sprintf("%.3f", $num / 1e9); # Convert nanoseconds to seconds + } else { + return sprintf("%d", $num); + } +} + +# Alternate pretty-printed form: 0 maps to "." +sub UnparseAlt { + my $num = shift; + if ($num == 0) { + return "."; + } else { + return Unparse($num); + } +} + +# Alternate pretty-printed form: 0 maps to "" +sub HtmlPrintNumber { + my $num = shift; + if ($num == 0) { + return ""; + } else { + return Unparse($num); + } +} + +# Return output units +sub Units { + if ($main::profile_type eq 'heap' || $main::profile_type eq 'growth') { + if ($main::opt_inuse_objects || $main::opt_alloc_objects) { + return "objects"; + } else { + if ($main::opt_show_bytes) { + return "B"; + } else { + return "MB"; + } + } + } elsif ($main::profile_type eq 'contention' && !$main::opt_contentions) { + return "seconds"; + } else { + return "samples"; + } +} + +##### Profile manipulation code ##### + +# Generate flattened profile: +# If count is charged to stack [a,b,c,d], in generated profile, +# it will be charged to [a] +sub FlatProfile { + my $profile = shift; + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + if ($#addrs >= 0) { + AddEntry($result, $addrs[0], $count); + } + } + return $result; +} + +# Generate cumulative profile: +# If count is charged to stack [a,b,c,d], in generated profile, +# it will be charged to [a], [b], [c], [d] +sub CumulativeProfile { + my $profile = shift; + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + foreach my $a (@addrs) { + AddEntry($result, $a, $count); + } + } + return $result; +} + +# If the second-youngest PC on the stack is always the same, returns +# that pc. Otherwise, returns undef. +sub IsSecondPcAlwaysTheSame { + my $profile = shift; + + my $second_pc = undef; + foreach my $k (keys(%{$profile})) { + my @addrs = split(/\n/, $k); + if ($#addrs < 1) { + return undef; + } + if (not defined $second_pc) { + $second_pc = $addrs[1]; + } else { + if ($second_pc ne $addrs[1]) { + return undef; + } + } + } + return $second_pc; +} + +sub ExtractSymbolNameInlineStack { + my $symbols = shift; + my $address = shift; + + my @stack = (); + + if (exists $symbols->{$address}) { + my @localinlinestack = @{$symbols->{$address}}; + for (my $i = $#localinlinestack; $i > 0; $i-=3) { + my $file = $localinlinestack[$i-1]; + my $fn = $localinlinestack[$i-0]; + + if ($file eq "?" || $file eq ":0") { + $file = "??:0"; + } + if ($fn eq '??') { + # If we can't get the symbol name, at least use the file information. + $fn = $file; + } + my $suffix = "[inline]"; + if ($i == 2) { + $suffix = ""; + } + push (@stack, $fn.$suffix); + } + } + else { + # If we can't get a symbol name, at least fill in the address. + push (@stack, $address); + } + + return @stack; +} + +sub ExtractSymbolLocation { + my $symbols = shift; + my $address = shift; + # 'addr2line' outputs "??:0" for unknown locations; we do the + # same to be consistent. + my $location = "??:0:unknown"; + if (exists $symbols->{$address}) { + my $file = $symbols->{$address}->[1]; + if ($file eq "?") { + $file = "??:0" + } + $location = $file . ":" . $symbols->{$address}->[0]; + } + return $location; +} + +# Extracts a graph of calls. +sub ExtractCalls { + my $symbols = shift; + my $profile = shift; + + my $calls = {}; + while( my ($stack_trace, $count) = each %$profile ) { + my @address = split(/\n/, $stack_trace); + my $destination = ExtractSymbolLocation($symbols, $address[0]); + AddEntry($calls, $destination, $count); + for (my $i = 1; $i <= $#address; $i++) { + my $source = ExtractSymbolLocation($symbols, $address[$i]); + my $call = "$source -> $destination"; + AddEntry($calls, $call, $count); + $destination = $source; + } + } + + return $calls; +} + +sub FilterFrames { + my $symbols = shift; + my $profile = shift; + + if ($main::opt_retain eq '' && $main::opt_exclude eq '') { + return $profile; + } + + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + my @path = (); + foreach my $a (@addrs) { + my $sym; + if (exists($symbols->{$a})) { + $sym = $symbols->{$a}->[0]; + } else { + $sym = $a; + } + if ($main::opt_retain ne '' && $sym !~ m/$main::opt_retain/) { + next; + } + if ($main::opt_exclude ne '' && $sym =~ m/$main::opt_exclude/) { + next; + } + push(@path, $a); + } + if (scalar(@path) > 0) { + my $reduced_path = join("\n", @path); + AddEntry($result, $reduced_path, $count); + } + } + + return $result; +} + +sub PrintCollapsedStacks { + my $symbols = shift; + my $profile = shift; + + while (my ($stack_trace, $count) = each %$profile) { + my @address = split(/\n/, $stack_trace); + my @names = reverse ( map { ExtractSymbolNameInlineStack($symbols, $_) } @address ); + printf("%s %d\n", join(";", @names), $count); + } +} + +sub RemoveUninterestingFrames { + my $symbols = shift; + my $profile = shift; + + # List of function names to skip + my %skip = (); + my $skip_regexp = 'NOMATCH'; + if ($main::profile_type eq 'heap' || $main::profile_type eq 'growth') { + foreach my $name ('@JEMALLOC_PREFIX@calloc', + 'cfree', + '@JEMALLOC_PREFIX@malloc', + 'je_malloc_default', + 'newImpl', + 'void* newImpl', + 'fallbackNewImpl', + 'void* fallbackNewImpl', + '@JEMALLOC_PREFIX@free', + '@JEMALLOC_PREFIX@memalign', + '@JEMALLOC_PREFIX@posix_memalign', + '@JEMALLOC_PREFIX@aligned_alloc', + 'pvalloc', + '@JEMALLOC_PREFIX@valloc', + '@JEMALLOC_PREFIX@realloc', + '@JEMALLOC_PREFIX@mallocx', + '@JEMALLOC_PREFIX@rallocx', + 'do_rallocx', + '@JEMALLOC_PREFIX@xallocx', + '@JEMALLOC_PREFIX@dallocx', + '@JEMALLOC_PREFIX@sdallocx', + '@JEMALLOC_PREFIX@sdallocx_noflags', + 'tc_calloc', + 'tc_cfree', + 'tc_malloc', + 'tc_free', + 'tc_memalign', + 'tc_posix_memalign', + 'tc_pvalloc', + 'tc_valloc', + 'tc_realloc', + 'tc_new', + 'tc_delete', + 'tc_newarray', + 'tc_deletearray', + 'tc_new_nothrow', + 'tc_newarray_nothrow', + 'do_malloc', + '::do_malloc', # new name -- got moved to an unnamed ns + '::do_malloc_or_cpp_alloc', + 'DoSampledAllocation', + 'simple_alloc::allocate', + '__malloc_alloc_template::allocate', + '__builtin_delete', + '__builtin_new', + '__builtin_vec_delete', + '__builtin_vec_new', + 'operator new', + 'operator new[]', + # The entry to our memory-allocation routines on OS X + 'malloc_zone_malloc', + 'malloc_zone_calloc', + 'malloc_zone_valloc', + 'malloc_zone_realloc', + 'malloc_zone_memalign', + 'malloc_zone_free', + # These mark the beginning/end of our custom sections + '__start_google_malloc', + '__stop_google_malloc', + '__start_malloc_hook', + '__stop_malloc_hook') { + $skip{$name} = 1; + $skip{"_" . $name} = 1; # Mach (OS X) adds a _ prefix to everything + } + # TODO: Remove TCMalloc once everything has been + # moved into the tcmalloc:: namespace and we have flushed + # old code out of the system. + $skip_regexp = "TCMalloc|^tcmalloc::"; + } elsif ($main::profile_type eq 'contention') { + foreach my $vname ('base::RecordLockProfileData', + 'base::SubmitMutexProfileData', + 'base::SubmitSpinLockProfileData', + 'Mutex::Unlock', + 'Mutex::UnlockSlow', + 'Mutex::ReaderUnlock', + 'MutexLock::~MutexLock', + 'SpinLock::Unlock', + 'SpinLock::SlowUnlock', + 'SpinLockHolder::~SpinLockHolder') { + $skip{$vname} = 1; + } + } elsif ($main::profile_type eq 'cpu') { + # Drop signal handlers used for CPU profile collection + # TODO(dpeng): this should not be necessary; it's taken + # care of by the general 2nd-pc mechanism below. + foreach my $name ('ProfileData::Add', # historical + 'ProfileData::prof_handler', # historical + 'CpuProfiler::prof_handler', + '__FRAME_END__', + '__pthread_sighandler', + '__restore') { + $skip{$name} = 1; + } + } else { + # Nothing skipped for unknown types + } + + if ($main::profile_type eq 'cpu') { + # If all the second-youngest program counters are the same, + # this STRONGLY suggests that it is an artifact of measurement, + # i.e., stack frames pushed by the CPU profiler signal handler. + # Hence, we delete them. + # (The topmost PC is read from the signal structure, not from + # the stack, so it does not get involved.) + while (my $second_pc = IsSecondPcAlwaysTheSame($profile)) { + my $result = {}; + my $func = ''; + if (exists($symbols->{$second_pc})) { + $second_pc = $symbols->{$second_pc}->[0]; + } + print STDERR "Removing $second_pc from all stack traces.\n"; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + splice @addrs, 1, 1; + my $reduced_path = join("\n", @addrs); + AddEntry($result, $reduced_path, $count); + } + $profile = $result; + } + } + + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + my @path = (); + foreach my $a (@addrs) { + if (exists($symbols->{$a})) { + my $func = $symbols->{$a}->[0]; + if ($skip{$func} || ($func =~ m/$skip_regexp/)) { + # Throw away the portion of the backtrace seen so far, under the + # assumption that previous frames were for functions internal to the + # allocator. + @path = (); + next; + } + } + push(@path, $a); + } + my $reduced_path = join("\n", @path); + AddEntry($result, $reduced_path, $count); + } + + $result = FilterFrames($symbols, $result); + + return $result; +} + +# Reduce profile to granularity given by user +sub ReduceProfile { + my $symbols = shift; + my $profile = shift; + my $result = {}; + my $fullname_to_shortname_map = {}; + FillFullnameToShortnameMap($symbols, $fullname_to_shortname_map); + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @translated = TranslateStack($symbols, $fullname_to_shortname_map, $k); + my @path = (); + my %seen = (); + $seen{''} = 1; # So that empty keys are skipped + foreach my $e (@translated) { + # To avoid double-counting due to recursion, skip a stack-trace + # entry if it has already been seen + if (!$seen{$e}) { + $seen{$e} = 1; + push(@path, $e); + } + } + my $reduced_path = join("\n", @path); + AddEntry($result, $reduced_path, $count); + } + return $result; +} + +# Does the specified symbol array match the regexp? +sub SymbolMatches { + my $sym = shift; + my $re = shift; + if (defined($sym)) { + for (my $i = 0; $i < $#{$sym}; $i += 3) { + if ($sym->[$i] =~ m/$re/ || $sym->[$i+1] =~ m/$re/) { + return 1; + } + } + } + return 0; +} + +# Focus only on paths involving specified regexps +sub FocusProfile { + my $symbols = shift; + my $profile = shift; + my $focus = shift; + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + foreach my $a (@addrs) { + # Reply if it matches either the address/shortname/fileline + if (($a =~ m/$focus/) || SymbolMatches($symbols->{$a}, $focus)) { + AddEntry($result, $k, $count); + last; + } + } + } + return $result; +} + +# Focus only on paths not involving specified regexps +sub IgnoreProfile { + my $symbols = shift; + my $profile = shift; + my $ignore = shift; + my $result = {}; + foreach my $k (keys(%{$profile})) { + my $count = $profile->{$k}; + my @addrs = split(/\n/, $k); + my $matched = 0; + foreach my $a (@addrs) { + # Reply if it matches either the address/shortname/fileline + if (($a =~ m/$ignore/) || SymbolMatches($symbols->{$a}, $ignore)) { + $matched = 1; + last; + } + } + if (!$matched) { + AddEntry($result, $k, $count); + } + } + return $result; +} + +# Get total count in profile +sub TotalProfile { + my $profile = shift; + my $result = 0; + foreach my $k (keys(%{$profile})) { + $result += $profile->{$k}; + } + return $result; +} + +# Add A to B +sub AddProfile { + my $A = shift; + my $B = shift; + + my $R = {}; + # add all keys in A + foreach my $k (keys(%{$A})) { + my $v = $A->{$k}; + AddEntry($R, $k, $v); + } + # add all keys in B + foreach my $k (keys(%{$B})) { + my $v = $B->{$k}; + AddEntry($R, $k, $v); + } + return $R; +} + +# Merges symbol maps +sub MergeSymbols { + my $A = shift; + my $B = shift; + + my $R = {}; + foreach my $k (keys(%{$A})) { + $R->{$k} = $A->{$k}; + } + if (defined($B)) { + foreach my $k (keys(%{$B})) { + $R->{$k} = $B->{$k}; + } + } + return $R; +} + + +# Add A to B +sub AddPcs { + my $A = shift; + my $B = shift; + + my $R = {}; + # add all keys in A + foreach my $k (keys(%{$A})) { + $R->{$k} = 1 + } + # add all keys in B + foreach my $k (keys(%{$B})) { + $R->{$k} = 1 + } + return $R; +} + +# Subtract B from A +sub SubtractProfile { + my $A = shift; + my $B = shift; + + my $R = {}; + foreach my $k (keys(%{$A})) { + my $v = $A->{$k} - GetEntry($B, $k); + if ($v < 0 && $main::opt_drop_negative) { + $v = 0; + } + AddEntry($R, $k, $v); + } + if (!$main::opt_drop_negative) { + # Take care of when subtracted profile has more entries + foreach my $k (keys(%{$B})) { + if (!exists($A->{$k})) { + AddEntry($R, $k, 0 - $B->{$k}); + } + } + } + return $R; +} + +# Get entry from profile; zero if not present +sub GetEntry { + my $profile = shift; + my $k = shift; + if (exists($profile->{$k})) { + return $profile->{$k}; + } else { + return 0; + } +} + +# Add entry to specified profile +sub AddEntry { + my $profile = shift; + my $k = shift; + my $n = shift; + if (!exists($profile->{$k})) { + $profile->{$k} = 0; + } + $profile->{$k} += $n; +} + +# Add a stack of entries to specified profile, and add them to the $pcs +# list. +sub AddEntries { + my $profile = shift; + my $pcs = shift; + my $stack = shift; + my $count = shift; + my @k = (); + + foreach my $e (split(/\s+/, $stack)) { + my $pc = HexExtend($e); + $pcs->{$pc} = 1; + push @k, $pc; + } + AddEntry($profile, (join "\n", @k), $count); +} + +##### Code to profile a server dynamically ##### + +sub CheckSymbolPage { + my $url = SymbolPageURL(); + my $command = ShellEscape(@URL_FETCHER, $url); + open(SYMBOL, "$command |") or error($command); + my $line = ; + $line =~ s/\r//g; # turn windows-looking lines into unix-looking lines + close(SYMBOL); + unless (defined($line)) { + error("$url doesn't exist\n"); + } + + if ($line =~ /^num_symbols:\s+(\d+)$/) { + if ($1 == 0) { + error("Stripped binary. No symbols available.\n"); + } + } else { + error("Failed to get the number of symbols from $url\n"); + } +} + +sub IsProfileURL { + my $profile_name = shift; + if (-f $profile_name) { + printf STDERR "Using local file $profile_name.\n"; + return 0; + } + return 1; +} + +sub ParseProfileURL { + my $profile_name = shift; + + if (!defined($profile_name) || $profile_name eq "") { + return (); + } + + # Split profile URL - matches all non-empty strings, so no test. + $profile_name =~ m,^(https?://)?([^/]+)(.*?)(/|$PROFILES)?$,; + + my $proto = $1 || "http://"; + my $hostport = $2; + my $prefix = $3; + my $profile = $4 || "/"; + + my $baseurl = "$proto$hostport$prefix"; + return ($hostport, $baseurl, $profile); +} + +# We fetch symbols from the first profile argument. +sub SymbolPageURL { + my ($hostport, $baseURL, $path) = ParseProfileURL($main::pfile_args[0]); + return "$baseURL$SYMBOL_PAGE"; +} + +sub FetchProgramName() { + my ($hostport, $baseURL, $path) = ParseProfileURL($main::pfile_args[0]); + my $url = "$baseURL$PROGRAM_NAME_PAGE"; + my $command_line = ShellEscape(@URL_FETCHER, $url); + open(CMDLINE, "$command_line |") or error($command_line); + my $cmdline = ; + $cmdline =~ s/\r//g; # turn windows-looking lines into unix-looking lines + close(CMDLINE); + error("Failed to get program name from $url\n") unless defined($cmdline); + $cmdline =~ s/\x00.+//; # Remove argv[1] and latters. + $cmdline =~ s!\n!!g; # Remove LFs. + return $cmdline; +} + +# Gee, curl's -L (--location) option isn't reliable at least +# with its 7.12.3 version. Curl will forget to post data if +# there is a redirection. This function is a workaround for +# curl. Redirection happens on borg hosts. +sub ResolveRedirectionForCurl { + my $url = shift; + my $command_line = ShellEscape(@URL_FETCHER, "--head", $url); + open(CMDLINE, "$command_line |") or error($command_line); + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + if (/^Location: (.*)/) { + $url = $1; + } + } + close(CMDLINE); + return $url; +} + +# Add a timeout flat to URL_FETCHER. Returns a new list. +sub AddFetchTimeout { + my $timeout = shift; + my @fetcher = @_; + if (defined($timeout)) { + if (join(" ", @fetcher) =~ m/\bcurl -s/) { + push(@fetcher, "--max-time", sprintf("%d", $timeout)); + } elsif (join(" ", @fetcher) =~ m/\brpcget\b/) { + push(@fetcher, sprintf("--deadline=%d", $timeout)); + } + } + return @fetcher; +} + +# Reads a symbol map from the file handle name given as $1, returning +# the resulting symbol map. Also processes variables relating to symbols. +# Currently, the only variable processed is 'binary=' which updates +# $main::prog to have the correct program name. +sub ReadSymbols { + my $in = shift; + my $map = {}; + while (<$in>) { + s/\r//g; # turn windows-looking lines into unix-looking lines + # Removes all the leading zeroes from the symbols, see comment below. + if (m/^0x0*([0-9a-f]+)\s+(.+)/) { + $map->{$1} = $2; + } elsif (m/^---/) { + last; + } elsif (m/^([a-z][^=]*)=(.*)$/ ) { + my ($variable, $value) = ($1, $2); + for ($variable, $value) { + s/^\s+//; + s/\s+$//; + } + if ($variable eq "binary") { + if ($main::prog ne $UNKNOWN_BINARY && $main::prog ne $value) { + printf STDERR ("Warning: Mismatched binary name '%s', using '%s'.\n", + $main::prog, $value); + } + $main::prog = $value; + } else { + printf STDERR ("Ignoring unknown variable in symbols list: " . + "'%s' = '%s'\n", $variable, $value); + } + } + } + return $map; +} + +sub URLEncode { + my $str = shift; + $str =~ s/([^A-Za-z0-9\-_.!~*'()])/ sprintf "%%%02x", ord $1 /eg; + return $str; +} + +sub AppendSymbolFilterParams { + my $url = shift; + my @params = (); + if ($main::opt_retain ne '') { + push(@params, sprintf("retain=%s", URLEncode($main::opt_retain))); + } + if ($main::opt_exclude ne '') { + push(@params, sprintf("exclude=%s", URLEncode($main::opt_exclude))); + } + if (scalar @params > 0) { + $url = sprintf("%s?%s", $url, join("&", @params)); + } + return $url; +} + +# Fetches and processes symbols to prepare them for use in the profile output +# code. If the optional 'symbol_map' arg is not given, fetches symbols from +# $SYMBOL_PAGE for all PC values found in profile. Otherwise, the raw symbols +# are assumed to have already been fetched into 'symbol_map' and are simply +# extracted and processed. +sub FetchSymbols { + my $pcset = shift; + my $symbol_map = shift; + + my %seen = (); + my @pcs = grep { !$seen{$_}++ } keys(%$pcset); # uniq + + if (!defined($symbol_map)) { + my $post_data = join("+", sort((map {"0x" . "$_"} @pcs))); + + open(POSTFILE, ">$main::tmpfile_sym"); + print POSTFILE $post_data; + close(POSTFILE); + + my $url = SymbolPageURL(); + + my $command_line; + if (join(" ", @URL_FETCHER) =~ m/\bcurl -s/) { + $url = ResolveRedirectionForCurl($url); + $url = AppendSymbolFilterParams($url); + $command_line = ShellEscape(@URL_FETCHER, "-d", "\@$main::tmpfile_sym", + $url); + } else { + $url = AppendSymbolFilterParams($url); + $command_line = (ShellEscape(@URL_FETCHER, "--post", $url) + . " < " . ShellEscape($main::tmpfile_sym)); + } + # We use c++filt in case $SYMBOL_PAGE gives us mangled symbols. + my $escaped_cppfilt = ShellEscape($obj_tool_map{"c++filt"}); + open(SYMBOL, "$command_line | $escaped_cppfilt |") or error($command_line); + $symbol_map = ReadSymbols(*SYMBOL{IO}); + close(SYMBOL); + } + + my $symbols = {}; + foreach my $pc (@pcs) { + my $fullname; + # For 64 bits binaries, symbols are extracted with 8 leading zeroes. + # Then /symbol reads the long symbols in as uint64, and outputs + # the result with a "0x%08llx" format which get rid of the zeroes. + # By removing all the leading zeroes in both $pc and the symbols from + # /symbol, the symbols match and are retrievable from the map. + my $shortpc = $pc; + $shortpc =~ s/^0*//; + # Each line may have a list of names, which includes the function + # and also other functions it has inlined. They are separated (in + # PrintSymbolizedProfile), by --, which is illegal in function names. + my $fullnames; + if (defined($symbol_map->{$shortpc})) { + $fullnames = $symbol_map->{$shortpc}; + } else { + $fullnames = "0x" . $pc; # Just use addresses + } + my $sym = []; + $symbols->{$pc} = $sym; + foreach my $fullname (split("--", $fullnames)) { + my $name = ShortFunctionName($fullname); + push(@{$sym}, $name, "?", $fullname); + } + } + return $symbols; +} + +sub BaseName { + my $file_name = shift; + $file_name =~ s!^.*/!!; # Remove directory name + return $file_name; +} + +sub MakeProfileBaseName { + my ($binary_name, $profile_name) = @_; + my ($hostport, $baseURL, $path) = ParseProfileURL($profile_name); + my $binary_shortname = BaseName($binary_name); + return sprintf("%s.%s.%s", + $binary_shortname, $main::op_time, $hostport); +} + +sub FetchDynamicProfile { + my $binary_name = shift; + my $profile_name = shift; + my $fetch_name_only = shift; + my $encourage_patience = shift; + + if (!IsProfileURL($profile_name)) { + return $profile_name; + } else { + my ($hostport, $baseURL, $path) = ParseProfileURL($profile_name); + if ($path eq "" || $path eq "/") { + # Missing type specifier defaults to cpu-profile + $path = $PROFILE_PAGE; + } + + my $profile_file = MakeProfileBaseName($binary_name, $profile_name); + + my $url = "$baseURL$path"; + my $fetch_timeout = undef; + if ($path =~ m/$PROFILE_PAGE|$PMUPROFILE_PAGE/) { + if ($path =~ m/[?]/) { + $url .= "&"; + } else { + $url .= "?"; + } + $url .= sprintf("seconds=%d", $main::opt_seconds); + $fetch_timeout = $main::opt_seconds * 1.01 + 60; + # Set $profile_type for consumption by PrintSymbolizedProfile. + $main::profile_type = 'cpu'; + } else { + # For non-CPU profiles, we add a type-extension to + # the target profile file name. + my $suffix = $path; + $suffix =~ s,/,.,g; + $profile_file .= $suffix; + # Set $profile_type for consumption by PrintSymbolizedProfile. + if ($path =~ m/$HEAP_PAGE/) { + $main::profile_type = 'heap'; + } elsif ($path =~ m/$GROWTH_PAGE/) { + $main::profile_type = 'growth'; + } elsif ($path =~ m/$CONTENTION_PAGE/) { + $main::profile_type = 'contention'; + } + } + + my $profile_dir = $ENV{"JEPROF_TMPDIR"} || ($ENV{HOME} . "/jeprof"); + if (! -d $profile_dir) { + mkdir($profile_dir) + || die("Unable to create profile directory $profile_dir: $!\n"); + } + my $tmp_profile = "$profile_dir/.tmp.$profile_file"; + my $real_profile = "$profile_dir/$profile_file"; + + if ($fetch_name_only > 0) { + return $real_profile; + } + + my @fetcher = AddFetchTimeout($fetch_timeout, @URL_FETCHER); + my $cmd = ShellEscape(@fetcher, $url) . " > " . ShellEscape($tmp_profile); + if ($path =~ m/$PROFILE_PAGE|$PMUPROFILE_PAGE|$CENSUSPROFILE_PAGE/){ + print STDERR "Gathering CPU profile from $url for $main::opt_seconds seconds to\n ${real_profile}\n"; + if ($encourage_patience) { + print STDERR "Be patient...\n"; + } + } else { + print STDERR "Fetching $path profile from $url to\n ${real_profile}\n"; + } + + (system($cmd) == 0) || error("Failed to get profile: $cmd: $!\n"); + (system("mv", $tmp_profile, $real_profile) == 0) || error("Unable to rename profile\n"); + print STDERR "Wrote profile to $real_profile\n"; + $main::collected_profile = $real_profile; + return $main::collected_profile; + } +} + +# Collect profiles in parallel +sub FetchDynamicProfiles { + my $items = scalar(@main::pfile_args); + my $levels = log($items) / log(2); + + if ($items == 1) { + $main::profile_files[0] = FetchDynamicProfile($main::prog, $main::pfile_args[0], 0, 1); + } else { + # math rounding issues + if ((2 ** $levels) < $items) { + $levels++; + } + my $count = scalar(@main::pfile_args); + for (my $i = 0; $i < $count; $i++) { + $main::profile_files[$i] = FetchDynamicProfile($main::prog, $main::pfile_args[$i], 1, 0); + } + print STDERR "Fetching $count profiles, Be patient...\n"; + FetchDynamicProfilesRecurse($levels, 0, 0); + $main::collected_profile = join(" \\\n ", @main::profile_files); + } +} + +# Recursively fork a process to get enough processes +# collecting profiles +sub FetchDynamicProfilesRecurse { + my $maxlevel = shift; + my $level = shift; + my $position = shift; + + if (my $pid = fork()) { + $position = 0 | ($position << 1); + TryCollectProfile($maxlevel, $level, $position); + wait; + } else { + $position = 1 | ($position << 1); + TryCollectProfile($maxlevel, $level, $position); + cleanup(); + exit(0); + } +} + +# Collect a single profile +sub TryCollectProfile { + my $maxlevel = shift; + my $level = shift; + my $position = shift; + + if ($level >= ($maxlevel - 1)) { + if ($position < scalar(@main::pfile_args)) { + FetchDynamicProfile($main::prog, $main::pfile_args[$position], 0, 0); + } + } else { + FetchDynamicProfilesRecurse($maxlevel, $level+1, $position); + } +} + +##### Parsing code ##### + +# Provide a small streaming-read module to handle very large +# cpu-profile files. Stream in chunks along a sliding window. +# Provides an interface to get one 'slot', correctly handling +# endian-ness differences. A slot is one 32-bit or 64-bit word +# (depending on the input profile). We tell endianness and bit-size +# for the profile by looking at the first 8 bytes: in cpu profiles, +# the second slot is always 3 (we'll accept anything that's not 0). +BEGIN { + package CpuProfileStream; + + sub new { + my ($class, $file, $fname) = @_; + my $self = { file => $file, + base => 0, + stride => 512 * 1024, # must be a multiple of bitsize/8 + slots => [], + unpack_code => "", # N for big-endian, V for little + perl_is_64bit => 1, # matters if profile is 64-bit + }; + bless $self, $class; + # Let unittests adjust the stride + if ($main::opt_test_stride > 0) { + $self->{stride} = $main::opt_test_stride; + } + # Read the first two slots to figure out bitsize and endianness. + my $slots = $self->{slots}; + my $str; + read($self->{file}, $str, 8); + # Set the global $address_length based on what we see here. + # 8 is 32-bit (8 hexadecimal chars); 16 is 64-bit (16 hexadecimal chars). + $address_length = ($str eq (chr(0)x8)) ? 16 : 8; + if ($address_length == 8) { + if (substr($str, 6, 2) eq chr(0)x2) { + $self->{unpack_code} = 'V'; # Little-endian. + } elsif (substr($str, 4, 2) eq chr(0)x2) { + $self->{unpack_code} = 'N'; # Big-endian + } else { + ::error("$fname: header size >= 2**16\n"); + } + @$slots = unpack($self->{unpack_code} . "*", $str); + } else { + # If we're a 64-bit profile, check if we're a 64-bit-capable + # perl. Otherwise, each slot will be represented as a float + # instead of an int64, losing precision and making all the + # 64-bit addresses wrong. We won't complain yet, but will + # later if we ever see a value that doesn't fit in 32 bits. + my $has_q = 0; + eval { $has_q = pack("Q", "1") ? 1 : 1; }; + if (!$has_q) { + $self->{perl_is_64bit} = 0; + } + read($self->{file}, $str, 8); + if (substr($str, 4, 4) eq chr(0)x4) { + # We'd love to use 'Q', but it's a) not universal, b) not endian-proof. + $self->{unpack_code} = 'V'; # Little-endian. + } elsif (substr($str, 0, 4) eq chr(0)x4) { + $self->{unpack_code} = 'N'; # Big-endian + } else { + ::error("$fname: header size >= 2**32\n"); + } + my @pair = unpack($self->{unpack_code} . "*", $str); + # Since we know one of the pair is 0, it's fine to just add them. + @$slots = (0, $pair[0] + $pair[1]); + } + return $self; + } + + # Load more data when we access slots->get(X) which is not yet in memory. + sub overflow { + my ($self) = @_; + my $slots = $self->{slots}; + $self->{base} += $#$slots + 1; # skip over data we're replacing + my $str; + read($self->{file}, $str, $self->{stride}); + if ($address_length == 8) { # the 32-bit case + # This is the easy case: unpack provides 32-bit unpacking primitives. + @$slots = unpack($self->{unpack_code} . "*", $str); + } else { + # We need to unpack 32 bits at a time and combine. + my @b32_values = unpack($self->{unpack_code} . "*", $str); + my @b64_values = (); + for (my $i = 0; $i < $#b32_values; $i += 2) { + # TODO(csilvers): if this is a 32-bit perl, the math below + # could end up in a too-large int, which perl will promote + # to a double, losing necessary precision. Deal with that. + # Right now, we just die. + my ($lo, $hi) = ($b32_values[$i], $b32_values[$i+1]); + if ($self->{unpack_code} eq 'N') { # big-endian + ($lo, $hi) = ($hi, $lo); + } + my $value = $lo + $hi * (2**32); + if (!$self->{perl_is_64bit} && # check value is exactly represented + (($value % (2**32)) != $lo || int($value / (2**32)) != $hi)) { + ::error("Need a 64-bit perl to process this 64-bit profile.\n"); + } + push(@b64_values, $value); + } + @$slots = @b64_values; + } + } + + # Access the i-th long in the file (logically), or -1 at EOF. + sub get { + my ($self, $idx) = @_; + my $slots = $self->{slots}; + while ($#$slots >= 0) { + if ($idx < $self->{base}) { + # The only time we expect a reference to $slots[$i - something] + # after referencing $slots[$i] is reading the very first header. + # Since $stride > |header|, that shouldn't cause any lookback + # errors. And everything after the header is sequential. + print STDERR "Unexpected look-back reading CPU profile"; + return -1; # shrug, don't know what better to return + } elsif ($idx > $self->{base} + $#$slots) { + $self->overflow(); + } else { + return $slots->[$idx - $self->{base}]; + } + } + # If we get here, $slots is [], which means we've reached EOF + return -1; # unique since slots is supposed to hold unsigned numbers + } +} + +# Reads the top, 'header' section of a profile, and returns the last +# line of the header, commonly called a 'header line'. The header +# section of a profile consists of zero or more 'command' lines that +# are instructions to jeprof, which jeprof executes when reading the +# header. All 'command' lines start with a %. After the command +# lines is the 'header line', which is a profile-specific line that +# indicates what type of profile it is, and perhaps other global +# information about the profile. For instance, here's a header line +# for a heap profile: +# heap profile: 53: 38236 [ 5525: 1284029] @ heapprofile +# For historical reasons, the CPU profile does not contain a text- +# readable header line. If the profile looks like a CPU profile, +# this function returns "". If no header line could be found, this +# function returns undef. +# +# The following commands are recognized: +# %warn -- emit the rest of this line to stderr, prefixed by 'WARNING:' +# +# The input file should be in binmode. +sub ReadProfileHeader { + local *PROFILE = shift; + my $firstchar = ""; + my $line = ""; + read(PROFILE, $firstchar, 1); + seek(PROFILE, -1, 1); # unread the firstchar + if ($firstchar !~ /[[:print:]]/) { # is not a text character + return ""; + } + while (defined($line = )) { + $line =~ s/\r//g; # turn windows-looking lines into unix-looking lines + if ($line =~ /^%warn\s+(.*)/) { # 'warn' command + # Note this matches both '%warn blah\n' and '%warn\n'. + print STDERR "WARNING: $1\n"; # print the rest of the line + } elsif ($line =~ /^%/) { + print STDERR "Ignoring unknown command from profile header: $line"; + } else { + # End of commands, must be the header line. + return $line; + } + } + return undef; # got to EOF without seeing a header line +} + +sub IsSymbolizedProfileFile { + my $file_name = shift; + if (!(-e $file_name) || !(-r $file_name)) { + return 0; + } + # Check if the file contains a symbol-section marker. + open(TFILE, "<$file_name"); + binmode TFILE; + my $firstline = ReadProfileHeader(*TFILE); + close(TFILE); + if (!$firstline) { + return 0; + } + $SYMBOL_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $symbol_marker = $&; + return $firstline =~ /^--- *$symbol_marker/; +} + +# Parse profile generated by common/profiler.cc and return a reference +# to a map: +# $result->{version} Version number of profile file +# $result->{period} Sampling period (in microseconds) +# $result->{profile} Profile object +# $result->{threads} Map of thread IDs to profile objects +# $result->{map} Memory map info from profile +# $result->{pcs} Hash of all PC values seen, key is hex address +sub ReadProfile { + my $prog = shift; + my $fname = shift; + my $result; # return value + + $CONTENTION_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $contention_marker = $&; + $GROWTH_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $growth_marker = $&; + $SYMBOL_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $symbol_marker = $&; + $PROFILE_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $profile_marker = $&; + $HEAP_PAGE =~ m,[^/]+$,; # matches everything after the last slash + my $heap_marker = $&; + + # Look at first line to see if it is a heap or a CPU profile. + # CPU profile may start with no header at all, and just binary data + # (starting with \0\0\0\0) -- in that case, don't try to read the + # whole firstline, since it may be gigabytes(!) of data. + open(PROFILE, "<$fname") || error("$fname: $!\n"); + binmode PROFILE; # New perls do UTF-8 processing + my $header = ReadProfileHeader(*PROFILE); + if (!defined($header)) { # means "at EOF" + error("Profile is empty.\n"); + } + + my $symbols; + if ($header =~ m/^--- *$symbol_marker/o) { + # Verify that the user asked for a symbolized profile + if (!$main::use_symbolized_profile) { + # we have both a binary and symbolized profiles, abort + error("FATAL ERROR: Symbolized profile\n $fname\ncannot be used with " . + "a binary arg. Try again without passing\n $prog\n"); + } + # Read the symbol section of the symbolized profile file. + $symbols = ReadSymbols(*PROFILE{IO}); + # Read the next line to get the header for the remaining profile. + $header = ReadProfileHeader(*PROFILE) || ""; + } + + if ($header =~ m/^--- *($heap_marker|$growth_marker)/o) { + # Skip "--- ..." line for profile types that have their own headers. + $header = ReadProfileHeader(*PROFILE) || ""; + } + + $main::profile_type = ''; + + if ($header =~ m/^heap profile:.*$growth_marker/o) { + $main::profile_type = 'growth'; + $result = ReadHeapProfile($prog, *PROFILE, $header); + } elsif ($header =~ m/^heap profile:/) { + $main::profile_type = 'heap'; + $result = ReadHeapProfile($prog, *PROFILE, $header); + } elsif ($header =~ m/^heap/) { + $main::profile_type = 'heap'; + $result = ReadThreadedHeapProfile($prog, $fname, $header); + } elsif ($header =~ m/^--- *$contention_marker/o) { + $main::profile_type = 'contention'; + $result = ReadSynchProfile($prog, *PROFILE); + } elsif ($header =~ m/^--- *Stacks:/) { + print STDERR + "Old format contention profile: mistakenly reports " . + "condition variable signals as lock contentions.\n"; + $main::profile_type = 'contention'; + $result = ReadSynchProfile($prog, *PROFILE); + } elsif ($header =~ m/^--- *$profile_marker/) { + # the binary cpu profile data starts immediately after this line + $main::profile_type = 'cpu'; + $result = ReadCPUProfile($prog, $fname, *PROFILE); + } else { + if (defined($symbols)) { + # a symbolized profile contains a format we don't recognize, bail out + error("$fname: Cannot recognize profile section after symbols.\n"); + } + # no ascii header present -- must be a CPU profile + $main::profile_type = 'cpu'; + $result = ReadCPUProfile($prog, $fname, *PROFILE); + } + + close(PROFILE); + + # if we got symbols along with the profile, return those as well + if (defined($symbols)) { + $result->{symbols} = $symbols; + } + + return $result; +} + +# Subtract one from caller pc so we map back to call instr. +# However, don't do this if we're reading a symbolized profile +# file, in which case the subtract-one was done when the file +# was written. +# +# We apply the same logic to all readers, though ReadCPUProfile uses an +# independent implementation. +sub FixCallerAddresses { + my $stack = shift; + # --raw/http: Always subtract one from pc's, because PrintSymbolizedProfile() + # dumps unadjusted profiles. + { + $stack =~ /(\s)/; + my $delimiter = $1; + my @addrs = split(' ', $stack); + my @fixedaddrs; + $#fixedaddrs = $#addrs; + if ($#addrs >= 0) { + $fixedaddrs[0] = $addrs[0]; + } + for (my $i = 1; $i <= $#addrs; $i++) { + $fixedaddrs[$i] = AddressSub($addrs[$i], "0x1"); + } + return join $delimiter, @fixedaddrs; + } +} + +# CPU profile reader +sub ReadCPUProfile { + my $prog = shift; + my $fname = shift; # just used for logging + local *PROFILE = shift; + my $version; + my $period; + my $i; + my $profile = {}; + my $pcs = {}; + + # Parse string into array of slots. + my $slots = CpuProfileStream->new(*PROFILE, $fname); + + # Read header. The current header version is a 5-element structure + # containing: + # 0: header count (always 0) + # 1: header "words" (after this one: 3) + # 2: format version (0) + # 3: sampling period (usec) + # 4: unused padding (always 0) + if ($slots->get(0) != 0 ) { + error("$fname: not a profile file, or old format profile file\n"); + } + $i = 2 + $slots->get(1); + $version = $slots->get(2); + $period = $slots->get(3); + # Do some sanity checking on these header values. + if ($version > (2**32) || $period > (2**32) || $i > (2**32) || $i < 5) { + error("$fname: not a profile file, or corrupted profile file\n"); + } + + # Parse profile + while ($slots->get($i) != -1) { + my $n = $slots->get($i++); + my $d = $slots->get($i++); + if ($d > (2**16)) { # TODO(csilvers): what's a reasonable max-stack-depth? + my $addr = sprintf("0%o", $i * ($address_length == 8 ? 4 : 8)); + print STDERR "At index $i (address $addr):\n"; + error("$fname: stack trace depth >= 2**32\n"); + } + if ($slots->get($i) == 0) { + # End of profile data marker + $i += $d; + last; + } + + # Make key out of the stack entries + my @k = (); + for (my $j = 0; $j < $d; $j++) { + my $pc = $slots->get($i+$j); + # Subtract one from caller pc so we map back to call instr. + $pc--; + $pc = sprintf("%0*x", $address_length, $pc); + $pcs->{$pc} = 1; + push @k, $pc; + } + + AddEntry($profile, (join "\n", @k), $n); + $i += $d; + } + + # Parse map + my $map = ''; + seek(PROFILE, $i * 4, 0); + read(PROFILE, $map, (stat PROFILE)[7]); + + my $r = {}; + $r->{version} = $version; + $r->{period} = $period; + $r->{profile} = $profile; + $r->{libs} = ParseLibraries($prog, $map, $pcs); + $r->{pcs} = $pcs; + + return $r; +} + +sub HeapProfileIndex { + my $index = 1; + if ($main::opt_inuse_space) { + $index = 1; + } elsif ($main::opt_inuse_objects) { + $index = 0; + } elsif ($main::opt_alloc_space) { + $index = 3; + } elsif ($main::opt_alloc_objects) { + $index = 2; + } + return $index; +} + +sub ReadMappedLibraries { + my $fh = shift; + my $map = ""; + # Read the /proc/self/maps data + while (<$fh>) { + s/\r//g; # turn windows-looking lines into unix-looking lines + $map .= $_; + } + return $map; +} + +sub ReadMemoryMap { + my $fh = shift; + my $map = ""; + # Read /proc/self/maps data as formatted by DumpAddressMap() + my $buildvar = ""; + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + # Parse "build=" specification if supplied + if (m/^\s*build=(.*)\n/) { + $buildvar = $1; + } + + # Expand "$build" variable if available + $_ =~ s/\$build\b/$buildvar/g; + + $map .= $_; + } + return $map; +} + +sub AdjustSamples { + my ($sample_adjustment, $sampling_algorithm, $n1, $s1, $n2, $s2) = @_; + if ($sample_adjustment) { + if ($sampling_algorithm == 2) { + # Remote-heap version 2 + # The sampling frequency is the rate of a Poisson process. + # This means that the probability of sampling an allocation of + # size X with sampling rate Y is 1 - exp(-X/Y) + if ($n1 != 0) { + my $ratio = (($s1*1.0)/$n1)/($sample_adjustment); + my $scale_factor = 1/(1 - exp(-$ratio)); + $n1 *= $scale_factor; + $s1 *= $scale_factor; + } + if ($n2 != 0) { + my $ratio = (($s2*1.0)/$n2)/($sample_adjustment); + my $scale_factor = 1/(1 - exp(-$ratio)); + $n2 *= $scale_factor; + $s2 *= $scale_factor; + } + } else { + # Remote-heap version 1 + my $ratio; + $ratio = (($s1*1.0)/$n1)/($sample_adjustment); + if ($ratio < 1) { + $n1 /= $ratio; + $s1 /= $ratio; + } + $ratio = (($s2*1.0)/$n2)/($sample_adjustment); + if ($ratio < 1) { + $n2 /= $ratio; + $s2 /= $ratio; + } + } + } + return ($n1, $s1, $n2, $s2); +} + +sub ReadHeapProfile { + my $prog = shift; + local *PROFILE = shift; + my $header = shift; + + my $index = HeapProfileIndex(); + + # Find the type of this profile. The header line looks like: + # heap profile: 1246: 8800744 [ 1246: 8800744] @ /266053 + # There are two pairs , the first inuse objects/space, and the + # second allocated objects/space. This is followed optionally by a profile + # type, and if that is present, optionally by a sampling frequency. + # For remote heap profiles (v1): + # The interpretation of the sampling frequency is that the profiler, for + # each sample, calculates a uniformly distributed random integer less than + # the given value, and records the next sample after that many bytes have + # been allocated. Therefore, the expected sample interval is half of the + # given frequency. By default, if not specified, the expected sample + # interval is 128KB. Only remote-heap-page profiles are adjusted for + # sample size. + # For remote heap profiles (v2): + # The sampling frequency is the rate of a Poisson process. This means that + # the probability of sampling an allocation of size X with sampling rate Y + # is 1 - exp(-X/Y) + # For version 2, a typical header line might look like this: + # heap profile: 1922: 127792360 [ 1922: 127792360] @ _v2/524288 + # the trailing number (524288) is the sampling rate. (Version 1 showed + # double the 'rate' here) + my $sampling_algorithm = 0; + my $sample_adjustment = 0; + chomp($header); + my $type = "unknown"; + if ($header =~ m"^heap profile:\s*(\d+):\s+(\d+)\s+\[\s*(\d+):\s+(\d+)\](\s*@\s*([^/]*)(/(\d+))?)?") { + if (defined($6) && ($6 ne '')) { + $type = $6; + my $sample_period = $8; + # $type is "heapprofile" for profiles generated by the + # heap-profiler, and either "heap" or "heap_v2" for profiles + # generated by sampling directly within tcmalloc. It can also + # be "growth" for heap-growth profiles. The first is typically + # found for profiles generated locally, and the others for + # remote profiles. + if (($type eq "heapprofile") || ($type !~ /heap/) ) { + # No need to adjust for the sampling rate with heap-profiler-derived data + $sampling_algorithm = 0; + } elsif ($type =~ /_v2/) { + $sampling_algorithm = 2; # version 2 sampling + if (defined($sample_period) && ($sample_period ne '')) { + $sample_adjustment = int($sample_period); + } + } else { + $sampling_algorithm = 1; # version 1 sampling + if (defined($sample_period) && ($sample_period ne '')) { + $sample_adjustment = int($sample_period)/2; + } + } + } else { + # We detect whether or not this is a remote-heap profile by checking + # that the total-allocated stats ($n2,$s2) are exactly the + # same as the in-use stats ($n1,$s1). It is remotely conceivable + # that a non-remote-heap profile may pass this check, but it is hard + # to imagine how that could happen. + # In this case it's so old it's guaranteed to be remote-heap version 1. + my ($n1, $s1, $n2, $s2) = ($1, $2, $3, $4); + if (($n1 == $n2) && ($s1 == $s2)) { + # This is likely to be a remote-heap based sample profile + $sampling_algorithm = 1; + } + } + } + + if ($sampling_algorithm > 0) { + # For remote-heap generated profiles, adjust the counts and sizes to + # account for the sample rate (we sample once every 128KB by default). + if ($sample_adjustment == 0) { + # Turn on profile adjustment. + $sample_adjustment = 128*1024; + print STDERR "Adjusting heap profiles for 1-in-128KB sampling rate\n"; + } else { + printf STDERR ("Adjusting heap profiles for 1-in-%d sampling rate\n", + $sample_adjustment); + } + if ($sampling_algorithm > 1) { + # We don't bother printing anything for the original version (version 1) + printf STDERR "Heap version $sampling_algorithm\n"; + } + } + + my $profile = {}; + my $pcs = {}; + my $map = ""; + + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + if (/^MAPPED_LIBRARIES:/) { + $map .= ReadMappedLibraries(*PROFILE); + last; + } + + if (/^--- Memory map:/) { + $map .= ReadMemoryMap(*PROFILE); + last; + } + + # Read entry of the form: + # : [: ] @ a1 a2 a3 ... an + s/^\s*//; + s/\s*$//; + if (m/^\s*(\d+):\s+(\d+)\s+\[\s*(\d+):\s+(\d+)\]\s+@\s+(.*)$/) { + my $stack = $5; + my ($n1, $s1, $n2, $s2) = ($1, $2, $3, $4); + my @counts = AdjustSamples($sample_adjustment, $sampling_algorithm, + $n1, $s1, $n2, $s2); + AddEntries($profile, $pcs, FixCallerAddresses($stack), $counts[$index]); + } + } + + my $r = {}; + $r->{version} = "heap"; + $r->{period} = 1; + $r->{profile} = $profile; + $r->{libs} = ParseLibraries($prog, $map, $pcs); + $r->{pcs} = $pcs; + return $r; +} + +sub ReadThreadedHeapProfile { + my ($prog, $fname, $header) = @_; + + my $index = HeapProfileIndex(); + my $sampling_algorithm = 0; + my $sample_adjustment = 0; + chomp($header); + my $type = "unknown"; + # Assuming a very specific type of header for now. + if ($header =~ m"^heap_v2/(\d+)") { + $type = "_v2"; + $sampling_algorithm = 2; + $sample_adjustment = int($1); + } + if ($type ne "_v2" || !defined($sample_adjustment)) { + die "Threaded heap profiles require v2 sampling with a sample rate\n"; + } + + my $profile = {}; + my $thread_profiles = {}; + my $pcs = {}; + my $map = ""; + my $stack = ""; + + while () { + s/\r//g; + if (/^MAPPED_LIBRARIES:/) { + $map .= ReadMappedLibraries(*PROFILE); + last; + } + + if (/^--- Memory map:/) { + $map .= ReadMemoryMap(*PROFILE); + last; + } + + # Read entry of the form: + # @ a1 a2 ... an + # t*: : [: ] + # t1: : [: ] + # ... + # tn: : [: ] + s/^\s*//; + s/\s*$//; + if (m/^@\s+(.*)$/) { + $stack = $1; + } elsif (m/^\s*(t(\*|\d+)):\s+(\d+):\s+(\d+)\s+\[\s*(\d+):\s+(\d+)\]$/) { + if ($stack eq "") { + # Still in the header, so this is just a per-thread summary. + next; + } + my $thread = $2; + my ($n1, $s1, $n2, $s2) = ($3, $4, $5, $6); + my @counts = AdjustSamples($sample_adjustment, $sampling_algorithm, + $n1, $s1, $n2, $s2); + if ($thread eq "*") { + AddEntries($profile, $pcs, FixCallerAddresses($stack), $counts[$index]); + } else { + if (!exists($thread_profiles->{$thread})) { + $thread_profiles->{$thread} = {}; + } + AddEntries($thread_profiles->{$thread}, $pcs, + FixCallerAddresses($stack), $counts[$index]); + } + } + } + + my $r = {}; + $r->{version} = "heap"; + $r->{period} = 1; + $r->{profile} = $profile; + $r->{threads} = $thread_profiles; + $r->{libs} = ParseLibraries($prog, $map, $pcs); + $r->{pcs} = $pcs; + return $r; +} + +sub ReadSynchProfile { + my $prog = shift; + local *PROFILE = shift; + my $header = shift; + + my $map = ''; + my $profile = {}; + my $pcs = {}; + my $sampling_period = 1; + my $cyclespernanosec = 2.8; # Default assumption for old binaries + my $seen_clockrate = 0; + my $line; + + my $index = 0; + if ($main::opt_total_delay) { + $index = 0; + } elsif ($main::opt_contentions) { + $index = 1; + } elsif ($main::opt_mean_delay) { + $index = 2; + } + + while ( $line = ) { + $line =~ s/\r//g; # turn windows-looking lines into unix-looking lines + if ( $line =~ /^\s*(\d+)\s+(\d+) \@\s*(.*?)\s*$/ ) { + my ($cycles, $count, $stack) = ($1, $2, $3); + + # Convert cycles to nanoseconds + $cycles /= $cyclespernanosec; + + # Adjust for sampling done by application + $cycles *= $sampling_period; + $count *= $sampling_period; + + my @values = ($cycles, $count, $cycles / $count); + AddEntries($profile, $pcs, FixCallerAddresses($stack), $values[$index]); + + } elsif ( $line =~ /^(slow release).*thread \d+ \@\s*(.*?)\s*$/ || + $line =~ /^\s*(\d+) \@\s*(.*?)\s*$/ ) { + my ($cycles, $stack) = ($1, $2); + if ($cycles !~ /^\d+$/) { + next; + } + + # Convert cycles to nanoseconds + $cycles /= $cyclespernanosec; + + # Adjust for sampling done by application + $cycles *= $sampling_period; + + AddEntries($profile, $pcs, FixCallerAddresses($stack), $cycles); + + } elsif ( $line =~ m/^([a-z][^=]*)=(.*)$/ ) { + my ($variable, $value) = ($1,$2); + for ($variable, $value) { + s/^\s+//; + s/\s+$//; + } + if ($variable eq "cycles/second") { + $cyclespernanosec = $value / 1e9; + $seen_clockrate = 1; + } elsif ($variable eq "sampling period") { + $sampling_period = $value; + } elsif ($variable eq "ms since reset") { + # Currently nothing is done with this value in jeprof + # So we just silently ignore it for now + } elsif ($variable eq "discarded samples") { + # Currently nothing is done with this value in jeprof + # So we just silently ignore it for now + } else { + printf STDERR ("Ignoring unnknown variable in /contention output: " . + "'%s' = '%s'\n",$variable,$value); + } + } else { + # Memory map entry + $map .= $line; + } + } + + if (!$seen_clockrate) { + printf STDERR ("No cycles/second entry in profile; Guessing %.1f GHz\n", + $cyclespernanosec); + } + + my $r = {}; + $r->{version} = 0; + $r->{period} = $sampling_period; + $r->{profile} = $profile; + $r->{libs} = ParseLibraries($prog, $map, $pcs); + $r->{pcs} = $pcs; + return $r; +} + +# Given a hex value in the form "0x1abcd" or "1abcd", return either +# "0001abcd" or "000000000001abcd", depending on the current (global) +# address length. +sub HexExtend { + my $addr = shift; + + $addr =~ s/^(0x)?0*//; + my $zeros_needed = $address_length - length($addr); + if ($zeros_needed < 0) { + printf STDERR "Warning: address $addr is longer than address length $address_length\n"; + return $addr; + } + return ("0" x $zeros_needed) . $addr; +} + +##### Symbol extraction ##### + +# Aggressively search the lib_prefix values for the given library +# If all else fails, just return the name of the library unmodified. +# If the lib_prefix is "/my/path,/other/path" and $file is "/lib/dir/mylib.so" +# it will search the following locations in this order, until it finds a file: +# /my/path/lib/dir/mylib.so +# /other/path/lib/dir/mylib.so +# /my/path/dir/mylib.so +# /other/path/dir/mylib.so +# /my/path/mylib.so +# /other/path/mylib.so +# /lib/dir/mylib.so (returned as last resort) +sub FindLibrary { + my $file = shift; + my $suffix = $file; + + # Search for the library as described above + do { + foreach my $prefix (@prefix_list) { + my $fullpath = $prefix . $suffix; + if (-e $fullpath) { + return $fullpath; + } + } + } while ($suffix =~ s|^/[^/]+/|/|); + return $file; +} + +# Return path to library with debugging symbols. +# For libc libraries, the copy in /usr/lib/debug contains debugging symbols +sub DebuggingLibrary { + my $file = shift; + + if ($file !~ m|^/|) { + return undef; + } + + # Find debug symbol file if it's named after the library's name. + + if (-f "/usr/lib/debug$file") { + if($main::opt_debug) { print STDERR "found debug info for $file in /usr/lib/debug$file\n"; } + return "/usr/lib/debug$file"; + } elsif (-f "/usr/lib/debug$file.debug") { + if($main::opt_debug) { print STDERR "found debug info for $file in /usr/lib/debug$file.debug\n"; } + return "/usr/lib/debug$file.debug"; + } + + if(!$main::opt_debug_syms_by_id) { + if($main::opt_debug) { print STDERR "no debug symbols found for $file\n" }; + return undef; + } + + # Find debug file if it's named after the library's build ID. + + my $readelf = ''; + if (!$main::gave_up_on_elfutils) { + $readelf = qx/eu-readelf -n ${file}/; + if ($?) { + print STDERR "Cannot run eu-readelf. To use --debug-syms-by-id you must be on Linux, with elfutils installed.\n"; + $main::gave_up_on_elfutils = 1; + return undef; + } + my $buildID = $1 if $readelf =~ /Build ID: ([A-Fa-f0-9]+)/s; + if (defined $buildID && length $buildID > 0) { + my $symbolFile = '/usr/lib/debug/.build-id/' . substr($buildID, 0, 2) . '/' . substr($buildID, 2) . '.debug'; + if (-e $symbolFile) { + if($main::opt_debug) { print STDERR "found debug symbol file $symbolFile for $file\n" }; + return $symbolFile; + } else { + if($main::opt_debug) { print STDERR "no debug symbol file found for $file, build ID: $buildID\n" }; + return undef; + } + } + } + + if($main::opt_debug) { print STDERR "no debug symbols found for $file, build ID unknown\n" }; + return undef; +} + + +# Parse text section header of a library using objdump +sub ParseTextSectionHeaderFromObjdump { + my $lib = shift; + + my $size = undef; + my $vma; + my $file_offset; + # Get objdump output from the library file to figure out how to + # map between mapped addresses and addresses in the library. + my $cmd = ShellEscape($obj_tool_map{"objdump"}, "-h", $lib); + open(OBJDUMP, "$cmd |") || error("$cmd: $!\n"); + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + # Idx Name Size VMA LMA File off Algn + # 10 .text 00104b2c 420156f0 420156f0 000156f0 2**4 + # For 64-bit objects, VMA and LMA will be 16 hex digits, size and file + # offset may still be 8. But AddressSub below will still handle that. + my @x = split; + if (($#x >= 6) && ($x[1] eq '.text')) { + $size = $x[2]; + $vma = $x[3]; + $file_offset = $x[5]; + last; + } + } + close(OBJDUMP); + + if (!defined($size)) { + return undef; + } + + my $r = {}; + $r->{size} = $size; + $r->{vma} = $vma; + $r->{file_offset} = $file_offset; + + return $r; +} + +# Parse text section header of a library using otool (on OS X) +sub ParseTextSectionHeaderFromOtool { + my $lib = shift; + + my $size = undef; + my $vma = undef; + my $file_offset = undef; + # Get otool output from the library file to figure out how to + # map between mapped addresses and addresses in the library. + my $command = ShellEscape($obj_tool_map{"otool"}, "-l", $lib); + open(OTOOL, "$command |") || error("$command: $!\n"); + my $cmd = ""; + my $sectname = ""; + my $segname = ""; + foreach my $line () { + $line =~ s/\r//g; # turn windows-looking lines into unix-looking lines + # Load command <#> + # cmd LC_SEGMENT + # [...] + # Section + # sectname __text + # segname __TEXT + # addr 0x000009f8 + # size 0x00018b9e + # offset 2552 + # align 2^2 (4) + # We will need to strip off the leading 0x from the hex addresses, + # and convert the offset into hex. + if ($line =~ /Load command/) { + $cmd = ""; + $sectname = ""; + $segname = ""; + } elsif ($line =~ /Section/) { + $sectname = ""; + $segname = ""; + } elsif ($line =~ /cmd (\w+)/) { + $cmd = $1; + } elsif ($line =~ /sectname (\w+)/) { + $sectname = $1; + } elsif ($line =~ /segname (\w+)/) { + $segname = $1; + } elsif (!(($cmd eq "LC_SEGMENT" || $cmd eq "LC_SEGMENT_64") && + $sectname eq "__text" && + $segname eq "__TEXT")) { + next; + } elsif ($line =~ /\baddr 0x([0-9a-fA-F]+)/) { + $vma = $1; + } elsif ($line =~ /\bsize 0x([0-9a-fA-F]+)/) { + $size = $1; + } elsif ($line =~ /\boffset ([0-9]+)/) { + $file_offset = sprintf("%016x", $1); + } + if (defined($vma) && defined($size) && defined($file_offset)) { + last; + } + } + close(OTOOL); + + if (!defined($vma) || !defined($size) || !defined($file_offset)) { + return undef; + } + + my $r = {}; + $r->{size} = $size; + $r->{vma} = $vma; + $r->{file_offset} = $file_offset; + + return $r; +} + +sub ParseTextSectionHeader { + # obj_tool_map("otool") is only defined if we're in a Mach-O environment + if (defined($obj_tool_map{"otool"})) { + my $r = ParseTextSectionHeaderFromOtool(@_); + if (defined($r)){ + return $r; + } + } + # If otool doesn't work, or we don't have it, fall back to objdump + return ParseTextSectionHeaderFromObjdump(@_); +} + +# Split /proc/pid/maps dump into a list of libraries +sub ParseLibraries { + return if $main::use_symbol_page; # We don't need libraries info. + my $prog = Cwd::abs_path(shift); + my $map = shift; + my $pcs = shift; + + my $result = []; + my $h = "[a-f0-9]+"; + my $zero_offset = HexExtend("0"); + + my $buildvar = ""; + foreach my $l (split("\n", $map)) { + if ($l =~ m/^\s*build=(.*)$/) { + $buildvar = $1; + } + + my $start; + my $finish; + my $offset; + my $lib; + if ($l =~ /^($h)-($h)\s+..x.\s+($h)\s+\S+:\S+\s+\d+\s+(\S+\.(so|dll|dylib|bundle)((\.\d+)+\w*(\.\d+){0,3})?)$/i) { + # Full line from /proc/self/maps. Example: + # 40000000-40015000 r-xp 00000000 03:01 12845071 /lib/ld-2.3.2.so + $start = HexExtend($1); + $finish = HexExtend($2); + $offset = HexExtend($3); + $lib = $4; + $lib =~ s|\\|/|g; # turn windows-style paths into unix-style paths + } elsif ($l =~ /^\s*($h)-($h):\s*(\S+\.so(\.\d+)*)/) { + # Cooked line from DumpAddressMap. Example: + # 40000000-40015000: /lib/ld-2.3.2.so + $start = HexExtend($1); + $finish = HexExtend($2); + $offset = $zero_offset; + $lib = $3; + } elsif (($l =~ /^($h)-($h)\s+..x.\s+($h)\s+\S+:\S+\s+\d+\s+(\S+)$/i) && ($4 eq $prog)) { + # PIEs and address space randomization do not play well with our + # default assumption that main executable is at lowest + # addresses. So we're detecting main executable in + # /proc/self/maps as well. + $start = HexExtend($1); + $finish = HexExtend($2); + $offset = HexExtend($3); + $lib = $4; + $lib =~ s|\\|/|g; # turn windows-style paths into unix-style paths + } + # FreeBSD 10.0 virtual memory map /proc/curproc/map as defined in + # function procfs_doprocmap (sys/fs/procfs/procfs_map.c) + # + # Example: + # 0x800600000 0x80061a000 26 0 0xfffff800035a0000 r-x 75 33 0x1004 COW NC vnode /libexec/ld-elf.s + # o.1 NCH -1 + elsif ($l =~ /^(0x$h)\s(0x$h)\s\d+\s\d+\s0x$h\sr-x\s\d+\s\d+\s0x\d+\s(COW|NCO)\s(NC|NNC)\svnode\s(\S+\.so(\.\d+)*)/) { + $start = HexExtend($1); + $finish = HexExtend($2); + $offset = $zero_offset; + $lib = FindLibrary($5); + + } else { + next; + } + + # Expand "$build" variable if available + $lib =~ s/\$build\b/$buildvar/g; + + $lib = FindLibrary($lib); + + # Check for pre-relocated libraries, which use pre-relocated symbol tables + # and thus require adjusting the offset that we'll use to translate + # VM addresses into symbol table addresses. + # Only do this if we're not going to fetch the symbol table from a + # debugging copy of the library. + if (!DebuggingLibrary($lib)) { + my $text = ParseTextSectionHeader($lib); + if (defined($text)) { + my $vma_offset = AddressSub($text->{vma}, $text->{file_offset}); + $offset = AddressAdd($offset, $vma_offset); + } + } + + if($main::opt_debug) { printf STDERR "$start:$finish ($offset) $lib\n"; } + push(@{$result}, [$lib, $start, $finish, $offset]); + } + + # Append special entry for additional library (not relocated) + if ($main::opt_lib ne "") { + my $text = ParseTextSectionHeader($main::opt_lib); + if (defined($text)) { + my $start = $text->{vma}; + my $finish = AddressAdd($start, $text->{size}); + + push(@{$result}, [$main::opt_lib, $start, $finish, $start]); + } + } + + # Append special entry for the main program. This covers + # 0..max_pc_value_seen, so that we assume pc values not found in one + # of the library ranges will be treated as coming from the main + # program binary. + my $min_pc = HexExtend("0"); + my $max_pc = $min_pc; # find the maximal PC value in any sample + foreach my $pc (keys(%{$pcs})) { + if (HexExtend($pc) gt $max_pc) { $max_pc = HexExtend($pc); } + } + push(@{$result}, [$prog, $min_pc, $max_pc, $zero_offset]); + + return $result; +} + +# Add two hex addresses of length $address_length. +# Run jeprof --test for unit test if this is changed. +sub AddressAdd { + my $addr1 = shift; + my $addr2 = shift; + my $sum; + + if ($address_length == 8) { + # Perl doesn't cope with wraparound arithmetic, so do it explicitly: + $sum = (hex($addr1)+hex($addr2)) % (0x10000000 * 16); + return sprintf("%08x", $sum); + + } else { + # Do the addition in 7-nibble chunks to trivialize carry handling. + + if ($main::opt_debug and $main::opt_test) { + print STDERR "AddressAdd $addr1 + $addr2 = "; + } + + my $a1 = substr($addr1,-7); + $addr1 = substr($addr1,0,-7); + my $a2 = substr($addr2,-7); + $addr2 = substr($addr2,0,-7); + $sum = hex($a1) + hex($a2); + my $c = 0; + if ($sum > 0xfffffff) { + $c = 1; + $sum -= 0x10000000; + } + my $r = sprintf("%07x", $sum); + + $a1 = substr($addr1,-7); + $addr1 = substr($addr1,0,-7); + $a2 = substr($addr2,-7); + $addr2 = substr($addr2,0,-7); + $sum = hex($a1) + hex($a2) + $c; + $c = 0; + if ($sum > 0xfffffff) { + $c = 1; + $sum -= 0x10000000; + } + $r = sprintf("%07x", $sum) . $r; + + $sum = hex($addr1) + hex($addr2) + $c; + if ($sum > 0xff) { $sum -= 0x100; } + $r = sprintf("%02x", $sum) . $r; + + if ($main::opt_debug and $main::opt_test) { print STDERR "$r\n"; } + + return $r; + } +} + + +# Subtract two hex addresses of length $address_length. +# Run jeprof --test for unit test if this is changed. +sub AddressSub { + my $addr1 = shift; + my $addr2 = shift; + my $diff; + + if ($address_length == 8) { + # Perl doesn't cope with wraparound arithmetic, so do it explicitly: + $diff = (hex($addr1)-hex($addr2)) % (0x10000000 * 16); + return sprintf("%08x", $diff); + + } else { + # Do the addition in 7-nibble chunks to trivialize borrow handling. + # if ($main::opt_debug) { print STDERR "AddressSub $addr1 - $addr2 = "; } + + my $a1 = hex(substr($addr1,-7)); + $addr1 = substr($addr1,0,-7); + my $a2 = hex(substr($addr2,-7)); + $addr2 = substr($addr2,0,-7); + my $b = 0; + if ($a2 > $a1) { + $b = 1; + $a1 += 0x10000000; + } + $diff = $a1 - $a2; + my $r = sprintf("%07x", $diff); + + $a1 = hex(substr($addr1,-7)); + $addr1 = substr($addr1,0,-7); + $a2 = hex(substr($addr2,-7)) + $b; + $addr2 = substr($addr2,0,-7); + $b = 0; + if ($a2 > $a1) { + $b = 1; + $a1 += 0x10000000; + } + $diff = $a1 - $a2; + $r = sprintf("%07x", $diff) . $r; + + $a1 = hex($addr1); + $a2 = hex($addr2) + $b; + if ($a2 > $a1) { $a1 += 0x100; } + $diff = $a1 - $a2; + $r = sprintf("%02x", $diff) . $r; + + # if ($main::opt_debug) { print STDERR "$r\n"; } + + return $r; + } +} + +# Increment a hex addresses of length $address_length. +# Run jeprof --test for unit test if this is changed. +sub AddressInc { + my $addr = shift; + my $sum; + + if ($address_length == 8) { + # Perl doesn't cope with wraparound arithmetic, so do it explicitly: + $sum = (hex($addr)+1) % (0x10000000 * 16); + return sprintf("%08x", $sum); + + } else { + # Do the addition in 7-nibble chunks to trivialize carry handling. + # We are always doing this to step through the addresses in a function, + # and will almost never overflow the first chunk, so we check for this + # case and exit early. + + # if ($main::opt_debug) { print STDERR "AddressInc $addr1 = "; } + + my $a1 = substr($addr,-7); + $addr = substr($addr,0,-7); + $sum = hex($a1) + 1; + my $r = sprintf("%07x", $sum); + if ($sum <= 0xfffffff) { + $r = $addr . $r; + # if ($main::opt_debug) { print STDERR "$r\n"; } + return HexExtend($r); + } else { + $r = "0000000"; + } + + $a1 = substr($addr,-7); + $addr = substr($addr,0,-7); + $sum = hex($a1) + 1; + $r = sprintf("%07x", $sum) . $r; + if ($sum <= 0xfffffff) { + $r = $addr . $r; + # if ($main::opt_debug) { print STDERR "$r\n"; } + return HexExtend($r); + } else { + $r = "00000000000000"; + } + + $sum = hex($addr) + 1; + if ($sum > 0xff) { $sum -= 0x100; } + $r = sprintf("%02x", $sum) . $r; + + # if ($main::opt_debug) { print STDERR "$r\n"; } + return $r; + } +} + +# Extract symbols for all PC values found in profile +sub ExtractSymbols { + my $libs = shift; + my $pcset = shift; + + my $symbols = {}; + + # Map each PC value to the containing library. To make this faster, + # we sort libraries by their starting pc value (highest first), and + # advance through the libraries as we advance the pc. Sometimes the + # addresses of libraries may overlap with the addresses of the main + # binary, so to make sure the libraries 'win', we iterate over the + # libraries in reverse order (which assumes the binary doesn't start + # in the middle of a library, which seems a fair assumption). + my @pcs = (sort { $a cmp $b } keys(%{$pcset})); # pcset is 0-extended strings + foreach my $lib (sort {$b->[1] cmp $a->[1]} @{$libs}) { + my $libname = $lib->[0]; + my $start = $lib->[1]; + my $finish = $lib->[2]; + my $offset = $lib->[3]; + + # Use debug library if it exists + my $debug_libname = DebuggingLibrary($libname); + if ($debug_libname) { + $libname = $debug_libname; + } + + # Get list of pcs that belong in this library. + my $contained = []; + my ($start_pc_index, $finish_pc_index); + # Find smallest finish_pc_index such that $finish < $pc[$finish_pc_index]. + for ($finish_pc_index = $#pcs + 1; $finish_pc_index > 0; + $finish_pc_index--) { + last if $pcs[$finish_pc_index - 1] le $finish; + } + # Find smallest start_pc_index such that $start <= $pc[$start_pc_index]. + for ($start_pc_index = $finish_pc_index; $start_pc_index > 0; + $start_pc_index--) { + last if $pcs[$start_pc_index - 1] lt $start; + } + # This keeps PC values higher than $pc[$finish_pc_index] in @pcs, + # in case there are overlaps in libraries and the main binary. + @{$contained} = splice(@pcs, $start_pc_index, + $finish_pc_index - $start_pc_index); + # Map to symbols + MapToSymbols($libname, AddressSub($start, $offset), $contained, $symbols); + } + + return $symbols; +} + +# Map list of PC values to symbols for a given image +sub MapToSymbols { + my $image = shift; + my $offset = shift; + my $pclist = shift; + my $symbols = shift; + + my $debug = 0; + + # Ignore empty binaries + if ($#{$pclist} < 0) { return; } + + # Figure out the addr2line command to use + my $addr2line = $obj_tool_map{"addr2line"}; + my $cmd = ShellEscape($addr2line, "-f", "-C", "-e", $image); + if (exists $obj_tool_map{"addr2line_pdb"}) { + $addr2line = $obj_tool_map{"addr2line_pdb"}; + $cmd = ShellEscape($addr2line, "--demangle", "-f", "-C", "-e", $image); + } + + # If "addr2line" isn't installed on the system at all, just use + # nm to get what info we can (function names, but not line numbers). + if (system(ShellEscape($addr2line, "--help") . " >$dev_null 2>&1") != 0) { + MapSymbolsWithNM($image, $offset, $pclist, $symbols); + return; + } + + # "addr2line -i" can produce a variable number of lines per input + # address, with no separator that allows us to tell when data for + # the next address starts. So we find the address for a special + # symbol (_fini) and interleave this address between all real + # addresses passed to addr2line. The name of this special symbol + # can then be used as a separator. + $sep_address = undef; # May be filled in by MapSymbolsWithNM() + my $nm_symbols = {}; + MapSymbolsWithNM($image, $offset, $pclist, $nm_symbols); + if (defined($sep_address)) { + # Only add " -i" to addr2line if the binary supports it. + # addr2line --help returns 0, but not if it sees an unknown flag first. + if (system("$cmd -i --help >$dev_null 2>&1") == 0) { + $cmd .= " -i"; + } else { + $sep_address = undef; # no need for sep_address if we don't support -i + } + } + + # Make file with all PC values with intervening 'sep_address' so + # that we can reliably detect the end of inlined function list + open(ADDRESSES, ">$main::tmpfile_sym") || error("$main::tmpfile_sym: $!\n"); + if ($debug) { print("---- $image ---\n"); } + for (my $i = 0; $i <= $#{$pclist}; $i++) { + # addr2line always reads hex addresses, and does not need '0x' prefix. + if ($debug) { printf STDERR ("%s\n", $pclist->[$i]); } + printf ADDRESSES ("%s\n", AddressSub($pclist->[$i], $offset)); + if (defined($sep_address)) { + printf ADDRESSES ("%s\n", $sep_address); + } + } + close(ADDRESSES); + if ($debug) { + print("----\n"); + system("cat", $main::tmpfile_sym); + print("----\n"); + system("$cmd < " . ShellEscape($main::tmpfile_sym)); + print("----\n"); + } + + open(SYMBOLS, "$cmd <" . ShellEscape($main::tmpfile_sym) . " |") + || error("$cmd: $!\n"); + my $count = 0; # Index in pclist + while () { + # Read fullfunction and filelineinfo from next pair of lines + s/\r?\n$//g; + my $fullfunction = $_; + $_ = ; + s/\r?\n$//g; + my $filelinenum = $_; + + if (defined($sep_address) && $fullfunction eq $sep_symbol) { + # Terminating marker for data for this address + $count++; + next; + } + + $filelinenum =~ s|\\|/|g; # turn windows-style paths into unix-style paths + + my $pcstr = $pclist->[$count]; + my $function = ShortFunctionName($fullfunction); + my $nms = $nm_symbols->{$pcstr}; + if (defined($nms)) { + if ($fullfunction eq '??') { + # nm found a symbol for us. + $function = $nms->[0]; + $fullfunction = $nms->[2]; + } else { + # MapSymbolsWithNM tags each routine with its starting address, + # useful in case the image has multiple occurrences of this + # routine. (It uses a syntax that resembles template parameters, + # that are automatically stripped out by ShortFunctionName().) + # addr2line does not provide the same information. So we check + # if nm disambiguated our symbol, and if so take the annotated + # (nm) version of the routine-name. TODO(csilvers): this won't + # catch overloaded, inlined symbols, which nm doesn't see. + # Better would be to do a check similar to nm's, in this fn. + if ($nms->[2] =~ m/^\Q$function\E/) { # sanity check it's the right fn + $function = $nms->[0]; + $fullfunction = $nms->[2]; + } + } + } + + # Prepend to accumulated symbols for pcstr + # (so that caller comes before callee) + my $sym = $symbols->{$pcstr}; + if (!defined($sym)) { + $sym = []; + $symbols->{$pcstr} = $sym; + } + unshift(@{$sym}, $function, $filelinenum, $fullfunction); + if ($debug) { printf STDERR ("%s => [%s]\n", $pcstr, join(" ", @{$sym})); } + if (!defined($sep_address)) { + # Inlining is off, so this entry ends immediately + $count++; + } + } + close(SYMBOLS); +} + +# Use nm to map the list of referenced PCs to symbols. Return true iff we +# are able to read procedure information via nm. +sub MapSymbolsWithNM { + my $image = shift; + my $offset = shift; + my $pclist = shift; + my $symbols = shift; + + # Get nm output sorted by increasing address + my $symbol_table = GetProcedureBoundaries($image, "."); + if (!%{$symbol_table}) { + return 0; + } + # Start addresses are already the right length (8 or 16 hex digits). + my @names = sort { $symbol_table->{$a}->[0] cmp $symbol_table->{$b}->[0] } + keys(%{$symbol_table}); + + if ($#names < 0) { + # No symbols: just use addresses + foreach my $pc (@{$pclist}) { + my $pcstr = "0x" . $pc; + $symbols->{$pc} = [$pcstr, "?", $pcstr]; + } + return 0; + } + + # Sort addresses so we can do a join against nm output + my $index = 0; + my $fullname = $names[0]; + my $name = ShortFunctionName($fullname); + foreach my $pc (sort { $a cmp $b } @{$pclist}) { + # Adjust for mapped offset + my $mpc = AddressSub($pc, $offset); + while (($index < $#names) && ($mpc ge $symbol_table->{$fullname}->[1])){ + $index++; + $fullname = $names[$index]; + $name = ShortFunctionName($fullname); + } + if ($mpc lt $symbol_table->{$fullname}->[1]) { + $symbols->{$pc} = [$name, "?", $fullname]; + } else { + my $pcstr = "0x" . $pc; + $symbols->{$pc} = [$pcstr, "?", $pcstr]; + } + } + return 1; +} + +sub ShortFunctionName { + my $function = shift; + while ($function =~ s/\([^()]*\)(\s*const)?//g) { } # Argument types + while ($function =~ s/<[^<>]*>//g) { } # Remove template arguments + $function =~ s/^.*\s+(\w+::)/$1/; # Remove leading type + return $function; +} + +# Trim overly long symbols found in disassembler output +sub CleanDisassembly { + my $d = shift; + while ($d =~ s/\([^()%]*\)(\s*const)?//g) { } # Argument types, not (%rax) + while ($d =~ s/(\w+)<[^<>]*>/$1/g) { } # Remove template arguments + return $d; +} + +# Clean file name for display +sub CleanFileName { + my ($f) = @_; + $f =~ s|^/proc/self/cwd/||; + $f =~ s|^\./||; + return $f; +} + +# Make address relative to section and clean up for display +sub UnparseAddress { + my ($offset, $address) = @_; + $address = AddressSub($address, $offset); + $address =~ s/^0x//; + $address =~ s/^0*//; + return $address; +} + +##### Miscellaneous ##### + +# Find the right versions of the above object tools to use. The +# argument is the program file being analyzed, and should be an ELF +# 32-bit or ELF 64-bit executable file. The location of the tools +# is determined by considering the following options in this order: +# 1) --tools option, if set +# 2) JEPROF_TOOLS environment variable, if set +# 3) the environment +sub ConfigureObjTools { + my $prog_file = shift; + + # Check for the existence of $prog_file because /usr/bin/file does not + # predictably return error status in prod. + (-e $prog_file) || error("$prog_file does not exist.\n"); + + my $file_type = undef; + if (-e "/usr/bin/file") { + # Follow symlinks (at least for systems where "file" supports that). + my $escaped_prog_file = ShellEscape($prog_file); + $file_type = `/usr/bin/file -L $escaped_prog_file 2>$dev_null || + /usr/bin/file $escaped_prog_file`; + } elsif ($^O == "MSWin32") { + $file_type = "MS Windows"; + } else { + print STDERR "WARNING: Can't determine the file type of $prog_file"; + } + + if ($file_type =~ /64-bit/) { + # Change $address_length to 16 if the program file is ELF 64-bit. + # We can't detect this from many (most?) heap or lock contention + # profiles, since the actual addresses referenced are generally in low + # memory even for 64-bit programs. + $address_length = 16; + } + + if ($file_type =~ /MS Windows/) { + # For windows, we provide a version of nm and addr2line as part of + # the opensource release, which is capable of parsing + # Windows-style PDB executables. It should live in the path, or + # in the same directory as jeprof. + $obj_tool_map{"nm_pdb"} = "nm-pdb"; + $obj_tool_map{"addr2line_pdb"} = "addr2line-pdb"; + } + + if ($file_type =~ /Mach-O/) { + # OS X uses otool to examine Mach-O files, rather than objdump. + $obj_tool_map{"otool"} = "otool"; + $obj_tool_map{"addr2line"} = "false"; # no addr2line + $obj_tool_map{"objdump"} = "false"; # no objdump + } + + # Go fill in %obj_tool_map with the pathnames to use: + foreach my $tool (keys %obj_tool_map) { + $obj_tool_map{$tool} = ConfigureTool($obj_tool_map{$tool}); + } +} + +# Returns the path of a caller-specified object tool. If --tools or +# JEPROF_TOOLS are specified, then returns the full path to the tool +# with that prefix. Otherwise, returns the path unmodified (which +# means we will look for it on PATH). +sub ConfigureTool { + my $tool = shift; + my $path; + + # --tools (or $JEPROF_TOOLS) is a comma separated list, where each + # item is either a) a pathname prefix, or b) a map of the form + # :. First we look for an entry of type (b) for our + # tool. If one is found, we use it. Otherwise, we consider all the + # pathname prefixes in turn, until one yields an existing file. If + # none does, we use a default path. + my $tools = $main::opt_tools || $ENV{"JEPROF_TOOLS"} || ""; + if ($tools =~ m/(,|^)\Q$tool\E:([^,]*)/) { + $path = $2; + # TODO(csilvers): sanity-check that $path exists? Hard if it's relative. + } elsif ($tools ne '') { + foreach my $prefix (split(',', $tools)) { + next if ($prefix =~ /:/); # ignore "tool:fullpath" entries in the list + if (-x $prefix . $tool) { + $path = $prefix . $tool; + last; + } + } + if (!$path) { + error("No '$tool' found with prefix specified by " . + "--tools (or \$JEPROF_TOOLS) '$tools'\n"); + } + } else { + # ... otherwise use the version that exists in the same directory as + # jeprof. If there's nothing there, use $PATH. + $0 =~ m,[^/]*$,; # this is everything after the last slash + my $dirname = $`; # this is everything up to and including the last slash + if (-x "$dirname$tool") { + $path = "$dirname$tool"; + } else { + $path = $tool; + } + } + if ($main::opt_debug) { print STDERR "Using '$path' for '$tool'.\n"; } + return $path; +} + +sub ShellEscape { + my @escaped_words = (); + foreach my $word (@_) { + my $escaped_word = $word; + if ($word =~ m![^a-zA-Z0-9/.,_=-]!) { # check for anything not in whitelist + $escaped_word =~ s/'/'\\''/; + $escaped_word = "'$escaped_word'"; + } + push(@escaped_words, $escaped_word); + } + return join(" ", @escaped_words); +} + +sub cleanup { + unlink($main::tmpfile_sym); + unlink(keys %main::tempnames); + + if ((scalar(@main::profile_files) > 0) && + defined($main::collected_profile)) { + my @profiles = split(" \\\n ", $main::collected_profile); + foreach my $profile (@profiles) { + unlink($profile); + } + } +} + +sub sighandler { + cleanup(); + exit(1); +} + +sub error { + my $msg = shift; + print STDERR $msg; + cleanup(); + exit(1); +} + + +# Run $nm_command and get all the resulting procedure boundaries whose +# names match "$regexp" and returns them in a hashtable mapping from +# procedure name to a two-element vector of [start address, end address] +sub GetProcedureBoundariesViaNm { + my $escaped_nm_command = shift; # shell-escaped + my $regexp = shift; + + my $symbol_table = {}; + open(NM, "$escaped_nm_command |") || error("$escaped_nm_command: $!\n"); + my $last_start = "0"; + my $routine = ""; + while () { + s/\r//g; # turn windows-looking lines into unix-looking lines + if (m/^\s*([0-9a-f]+) (.) (..*)/) { + my $start_val = $1; + my $type = $2; + my $this_routine = $3; + + # It's possible for two symbols to share the same address, if + # one is a zero-length variable (like __start_google_malloc) or + # one symbol is a weak alias to another (like __libc_malloc). + # In such cases, we want to ignore all values except for the + # actual symbol, which in nm-speak has type "T". The logic + # below does this, though it's a bit tricky: what happens when + # we have a series of lines with the same address, is the first + # one gets queued up to be processed. However, it won't + # *actually* be processed until later, when we read a line with + # a different address. That means that as long as we're reading + # lines with the same address, we have a chance to replace that + # item in the queue, which we do whenever we see a 'T' entry -- + # that is, a line with type 'T'. If we never see a 'T' entry, + # we'll just go ahead and process the first entry (which never + # got touched in the queue), and ignore the others. + if ($start_val eq $last_start && $type =~ /t/i) { + # We are the 'T' symbol at this address, replace previous symbol. + $routine = $this_routine; + next; + } elsif ($start_val eq $last_start) { + # We're not the 'T' symbol at this address, so ignore us. + next; + } + + if ($this_routine eq $sep_symbol) { + $sep_address = HexExtend($start_val); + } + + # Tag this routine with the starting address in case the image + # has multiple occurrences of this routine. We use a syntax + # that resembles template parameters that are automatically + # stripped out by ShortFunctionName() + $this_routine .= "<$start_val>"; + + if (defined($routine) && $routine =~ m/$regexp/) { + $symbol_table->{$routine} = [HexExtend($last_start), + HexExtend($start_val)]; + } + $last_start = $start_val; + $routine = $this_routine; + } elsif (m/^Loaded image name: (.+)/) { + # The win32 nm workalike emits information about the binary it is using. + if ($main::opt_debug) { print STDERR "Using Image $1\n"; } + } elsif (m/^PDB file name: (.+)/) { + # The win32 nm workalike emits information about the pdb it is using. + if ($main::opt_debug) { print STDERR "Using PDB $1\n"; } + } + } + close(NM); + # Handle the last line in the nm output. Unfortunately, we don't know + # how big this last symbol is, because we don't know how big the file + # is. For now, we just give it a size of 0. + # TODO(csilvers): do better here. + if (defined($routine) && $routine =~ m/$regexp/) { + $symbol_table->{$routine} = [HexExtend($last_start), + HexExtend($last_start)]; + } + return $symbol_table; +} + +# Gets the procedure boundaries for all routines in "$image" whose names +# match "$regexp" and returns them in a hashtable mapping from procedure +# name to a two-element vector of [start address, end address]. +# Will return an empty map if nm is not installed or not working properly. +sub GetProcedureBoundaries { + my $image = shift; + my $regexp = shift; + + # If $image doesn't start with /, then put ./ in front of it. This works + # around an obnoxious bug in our probing of nm -f behavior. + # "nm -f $image" is supposed to fail on GNU nm, but if: + # + # a. $image starts with [BbSsPp] (for example, bin/foo/bar), AND + # b. you have a.out in your current directory (a not uncommon occurrence) + # + # then "nm -f $image" succeeds because -f only looks at the first letter of + # the argument, which looks valid because it's [BbSsPp], and then since + # there's no image provided, it looks for a.out and finds it. + # + # This regex makes sure that $image starts with . or /, forcing the -f + # parsing to fail since . and / are not valid formats. + $image =~ s#^[^/]#./$&#; + + # For libc libraries, the copy in /usr/lib/debug contains debugging symbols + my $debugging = DebuggingLibrary($image); + if ($debugging) { + $image = $debugging; + } + + my $nm = $obj_tool_map{"nm"}; + my $cppfilt = $obj_tool_map{"c++filt"}; + + # nm can fail for two reasons: 1) $image isn't a debug library; 2) nm + # binary doesn't support --demangle. In addition, for OS X we need + # to use the -f flag to get 'flat' nm output (otherwise we don't sort + # properly and get incorrect results). Unfortunately, GNU nm uses -f + # in an incompatible way. So first we test whether our nm supports + # --demangle and -f. + my $demangle_flag = ""; + my $cppfilt_flag = ""; + my $to_devnull = ">$dev_null 2>&1"; + if (system(ShellEscape($nm, "--demangle", $image) . $to_devnull) == 0) { + # In this mode, we do "nm --demangle " + $demangle_flag = "--demangle"; + $cppfilt_flag = ""; + } elsif (system(ShellEscape($cppfilt, $image) . $to_devnull) == 0) { + # In this mode, we do "nm | c++filt" + $cppfilt_flag = " | " . ShellEscape($cppfilt); + }; + my $flatten_flag = ""; + if (system(ShellEscape($nm, "-f", $image) . $to_devnull) == 0) { + $flatten_flag = "-f"; + } + + # Finally, in the case $imagie isn't a debug library, we try again with + # -D to at least get *exported* symbols. If we can't use --demangle, + # we use c++filt instead, if it exists on this system. + my @nm_commands = (ShellEscape($nm, "-n", $flatten_flag, $demangle_flag, + $image) . " 2>$dev_null $cppfilt_flag", + ShellEscape($nm, "-D", "-n", $flatten_flag, $demangle_flag, + $image) . " 2>$dev_null $cppfilt_flag", + # 6nm is for Go binaries + ShellEscape("6nm", "$image") . " 2>$dev_null | sort", + ); + + # If the executable is an MS Windows PDB-format executable, we'll + # have set up obj_tool_map("nm_pdb"). In this case, we actually + # want to use both unix nm and windows-specific nm_pdb, since + # PDB-format executables can apparently include dwarf .o files. + if (exists $obj_tool_map{"nm_pdb"}) { + push(@nm_commands, + ShellEscape($obj_tool_map{"nm_pdb"}, "--demangle", $image) + . " 2>$dev_null"); + } + + foreach my $nm_command (@nm_commands) { + my $symbol_table = GetProcedureBoundariesViaNm($nm_command, $regexp); + return $symbol_table if (%{$symbol_table}); + } + my $symbol_table = {}; + return $symbol_table; +} + + +# The test vectors for AddressAdd/Sub/Inc are 8-16-nibble hex strings. +# To make them more readable, we add underscores at interesting places. +# This routine removes the underscores, producing the canonical representation +# used by jeprof to represent addresses, particularly in the tested routines. +sub CanonicalHex { + my $arg = shift; + return join '', (split '_',$arg); +} + + +# Unit test for AddressAdd: +sub AddressAddUnitTest { + my $test_data_8 = shift; + my $test_data_16 = shift; + my $error_count = 0; + my $fail_count = 0; + my $pass_count = 0; + # print STDERR "AddressAddUnitTest: ", 1+$#{$test_data_8}, " tests\n"; + + # First a few 8-nibble addresses. Note that this implementation uses + # plain old arithmetic, so a quick sanity check along with verifying what + # happens to overflow (we want it to wrap): + $address_length = 8; + foreach my $row (@{$test_data_8}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressAdd ($row->[0], $row->[1]); + if ($sum ne $row->[2]) { + printf STDERR "ERROR: %s != %s + %s = %s\n", $sum, + $row->[0], $row->[1], $row->[2]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressAdd 32-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count = $fail_count; + $fail_count = 0; + $pass_count = 0; + + # Now 16-nibble addresses. + $address_length = 16; + foreach my $row (@{$test_data_16}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressAdd (CanonicalHex($row->[0]), CanonicalHex($row->[1])); + my $expected = join '', (split '_',$row->[2]); + if ($sum ne CanonicalHex($row->[2])) { + printf STDERR "ERROR: %s != %s + %s = %s\n", $sum, + $row->[0], $row->[1], $row->[2]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressAdd 64-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count += $fail_count; + + return $error_count; +} + + +# Unit test for AddressSub: +sub AddressSubUnitTest { + my $test_data_8 = shift; + my $test_data_16 = shift; + my $error_count = 0; + my $fail_count = 0; + my $pass_count = 0; + # print STDERR "AddressSubUnitTest: ", 1+$#{$test_data_8}, " tests\n"; + + # First a few 8-nibble addresses. Note that this implementation uses + # plain old arithmetic, so a quick sanity check along with verifying what + # happens to overflow (we want it to wrap): + $address_length = 8; + foreach my $row (@{$test_data_8}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressSub ($row->[0], $row->[1]); + if ($sum ne $row->[3]) { + printf STDERR "ERROR: %s != %s - %s = %s\n", $sum, + $row->[0], $row->[1], $row->[3]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressSub 32-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count = $fail_count; + $fail_count = 0; + $pass_count = 0; + + # Now 16-nibble addresses. + $address_length = 16; + foreach my $row (@{$test_data_16}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressSub (CanonicalHex($row->[0]), CanonicalHex($row->[1])); + if ($sum ne CanonicalHex($row->[3])) { + printf STDERR "ERROR: %s != %s - %s = %s\n", $sum, + $row->[0], $row->[1], $row->[3]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressSub 64-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count += $fail_count; + + return $error_count; +} + + +# Unit test for AddressInc: +sub AddressIncUnitTest { + my $test_data_8 = shift; + my $test_data_16 = shift; + my $error_count = 0; + my $fail_count = 0; + my $pass_count = 0; + # print STDERR "AddressIncUnitTest: ", 1+$#{$test_data_8}, " tests\n"; + + # First a few 8-nibble addresses. Note that this implementation uses + # plain old arithmetic, so a quick sanity check along with verifying what + # happens to overflow (we want it to wrap): + $address_length = 8; + foreach my $row (@{$test_data_8}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressInc ($row->[0]); + if ($sum ne $row->[4]) { + printf STDERR "ERROR: %s != %s + 1 = %s\n", $sum, + $row->[0], $row->[4]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressInc 32-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count = $fail_count; + $fail_count = 0; + $pass_count = 0; + + # Now 16-nibble addresses. + $address_length = 16; + foreach my $row (@{$test_data_16}) { + if ($main::opt_debug and $main::opt_test) { print STDERR "@{$row}\n"; } + my $sum = AddressInc (CanonicalHex($row->[0])); + if ($sum ne CanonicalHex($row->[4])) { + printf STDERR "ERROR: %s != %s + 1 = %s\n", $sum, + $row->[0], $row->[4]; + ++$fail_count; + } else { + ++$pass_count; + } + } + printf STDERR "AddressInc 64-bit tests: %d passes, %d failures\n", + $pass_count, $fail_count; + $error_count += $fail_count; + + return $error_count; +} + + +# Driver for unit tests. +# Currently just the address add/subtract/increment routines for 64-bit. +sub RunUnitTests { + my $error_count = 0; + + # This is a list of tuples [a, b, a+b, a-b, a+1] + my $unit_test_data_8 = [ + [qw(aaaaaaaa 50505050 fafafafa 5a5a5a5a aaaaaaab)], + [qw(50505050 aaaaaaaa fafafafa a5a5a5a6 50505051)], + [qw(ffffffff aaaaaaaa aaaaaaa9 55555555 00000000)], + [qw(00000001 ffffffff 00000000 00000002 00000002)], + [qw(00000001 fffffff0 fffffff1 00000011 00000002)], + ]; + my $unit_test_data_16 = [ + # The implementation handles data in 7-nibble chunks, so those are the + # interesting boundaries. + [qw(aaaaaaaa 50505050 + 00_000000f_afafafa 00_0000005_a5a5a5a 00_000000a_aaaaaab)], + [qw(50505050 aaaaaaaa + 00_000000f_afafafa ff_ffffffa_5a5a5a6 00_0000005_0505051)], + [qw(ffffffff aaaaaaaa + 00_000001a_aaaaaa9 00_0000005_5555555 00_0000010_0000000)], + [qw(00000001 ffffffff + 00_0000010_0000000 ff_ffffff0_0000002 00_0000000_0000002)], + [qw(00000001 fffffff0 + 00_000000f_ffffff1 ff_ffffff0_0000011 00_0000000_0000002)], + + [qw(00_a00000a_aaaaaaa 50505050 + 00_a00000f_afafafa 00_a000005_a5a5a5a 00_a00000a_aaaaaab)], + [qw(0f_fff0005_0505050 aaaaaaaa + 0f_fff000f_afafafa 0f_ffefffa_5a5a5a6 0f_fff0005_0505051)], + [qw(00_000000f_fffffff 01_800000a_aaaaaaa + 01_800001a_aaaaaa9 fe_8000005_5555555 00_0000010_0000000)], + [qw(00_0000000_0000001 ff_fffffff_fffffff + 00_0000000_0000000 00_0000000_0000002 00_0000000_0000002)], + [qw(00_0000000_0000001 ff_fffffff_ffffff0 + ff_fffffff_ffffff1 00_0000000_0000011 00_0000000_0000002)], + ]; + + $error_count += AddressAddUnitTest($unit_test_data_8, $unit_test_data_16); + $error_count += AddressSubUnitTest($unit_test_data_8, $unit_test_data_16); + $error_count += AddressIncUnitTest($unit_test_data_8, $unit_test_data_16); + if ($error_count > 0) { + print STDERR $error_count, " errors: FAILED\n"; + } else { + print STDERR "PASS\n"; + } + exit ($error_count); +} \ No newline at end of file diff --git a/src/sources/conprof/tools/mod.rs b/src/sources/conprof/tools/mod.rs new file mode 100644 index 0000000..6f34739 --- /dev/null +++ b/src/sources/conprof/tools/mod.rs @@ -0,0 +1,40 @@ +use std::process::Stdio; +use tokio::{io::AsyncWriteExt, process::Command}; +use vector::tls::TlsConfig; + +const JEPROF: &[u8] = include_bytes!("jeprof"); + +pub async fn fetch_raw(url: String, tls: Option) -> Result, String> { + let mut jeprof = Command::new("perl"); + if let Some(tls) = tls { + let url_fetcher = format!( + "curl -s --cert {} --key {} --cacert {}", + tls.crt_file.clone().unwrap().to_str().unwrap(), + tls.key_file.unwrap().to_str().unwrap(), + tls.ca_file.unwrap().to_str().unwrap() + ); + jeprof.env("URL_FETCHER", url_fetcher); + } + let mut jeprof = jeprof + .args(["/dev/stdin", "--raw", &url]) + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) + .spawn() + .map_err(|e| format!("spawn jeprof fail: {}", e))?; + jeprof + .stdin + .take() + .unwrap() + .write_all(JEPROF) + .await + .unwrap(); + let output = jeprof + .wait_with_output() + .await + .map_err(|e| format!("jeprof: {}", e))?; + if !output.status.success() { + let stderr = std::str::from_utf8(&output.stderr).unwrap_or("invalid utf8"); + return Err(format!("jeprof stderr: {:?}", stderr)); + } + Ok(output.stdout) +} diff --git a/extensions/topsql/src/topology/fetch/mock/mod.rs b/src/sources/conprof/topology/fetch/mock/mod.rs similarity index 100% rename from extensions/topsql/src/topology/fetch/mock/mod.rs rename to src/sources/conprof/topology/fetch/mock/mod.rs diff --git a/extensions/topsql/src/topology/fetch/mock/pd.rs b/src/sources/conprof/topology/fetch/mock/pd.rs similarity index 100% rename from extensions/topsql/src/topology/fetch/mock/pd.rs rename to src/sources/conprof/topology/fetch/mock/pd.rs diff --git a/extensions/topsql/src/topology/fetch/mock/store.rs b/src/sources/conprof/topology/fetch/mock/store.rs similarity index 100% rename from extensions/topsql/src/topology/fetch/mock/store.rs rename to src/sources/conprof/topology/fetch/mock/store.rs diff --git a/src/sources/conprof/topology/fetch/mod.rs b/src/sources/conprof/topology/fetch/mod.rs new file mode 100644 index 0000000..dfc4bc1 --- /dev/null +++ b/src/sources/conprof/topology/fetch/mod.rs @@ -0,0 +1,190 @@ +mod models; +mod pd; +mod store; +mod tidb; +mod tiproxy; +mod utils; + +#[cfg(test)] +mod mock; + +use std::collections::HashSet; +use std::fs::read; + +use snafu::{ResultExt, Snafu}; +use vector::config::ProxyConfig; +use vector::http::HttpClient; +use vector::tls::{MaybeTlsSettings, TlsConfig}; + +use crate::sources::conprof::topology::Component; + +#[derive(Debug, Snafu)] +pub enum FetchError { + #[snafu(display("Failed to build TLS settings: {}", source))] + BuildTlsSettings { source: vector::tls::TlsError }, + #[snafu(display("Failed to read ca file: {}", source))] + ReadCaFile { source: std::io::Error }, + #[snafu(display("Failed to read crt file: {}", source))] + ReadCrtFile { source: std::io::Error }, + #[snafu(display("Failed to read key file: {}", source))] + ReadKeyFile { source: std::io::Error }, + #[snafu(display("Failed to parse address: {}", source))] + ParseAddress { source: http::uri::InvalidUri }, + #[snafu(display("Failed to build HTTP client: {}", source))] + BuildHttpClient { source: vector::http::HttpError }, + #[snafu(display("Failed to build etcd client: {}", source))] + BuildEtcdClient { source: etcd_client::Error }, + #[snafu(display("Failed to fetch pd topology: {}", source))] + FetchPDTopology { source: pd::FetchError }, + #[snafu(display("Failed to fetch tidb topology: {}", source))] + FetchTiDBTopology { source: tidb::FetchError }, + #[snafu(display("Failed to fetch store topology: {}", source))] + FetchStoreTopology { source: store::FetchError }, + #[snafu(display("Failed to fetch tiproxy topology: {}", source))] + FetchTiProxyTopology { source: tiproxy::FetchError }, +} + +pub struct TopologyFetcher { + pd_address: String, + http_client: HttpClient, + etcd_client: etcd_client::Client, +} + +impl TopologyFetcher { + pub async fn new( + pd_address: String, + tls_config: Option, + proxy_config: &ProxyConfig, + ) -> Result { + let pd_address = Self::polish_address(pd_address, &tls_config)?; + let http_client = Self::build_http_client(&tls_config, proxy_config)?; + let etcd_client = Self::build_etcd_client(&pd_address, &tls_config).await?; + + Ok(Self { + pd_address, + http_client, + etcd_client, + }) + } + + pub async fn get_up_components( + &mut self, + components: &mut HashSet, + ) -> Result<(), FetchError> { + pd::PDTopologyFetcher::new(&self.pd_address, &self.http_client) + .get_up_pds(components) + .await + .context(FetchPDTopologySnafu)?; + tidb::TiDBTopologyFetcher::new(&mut self.etcd_client) + .get_up_tidbs(components) + .await + .context(FetchTiDBTopologySnafu)?; + store::StoreTopologyFetcher::new(&self.pd_address, &self.http_client) + .get_up_stores(components) + .await + .context(FetchStoreTopologySnafu)?; + tiproxy::TiProxyTopologyFetcher::new(&mut self.etcd_client) + .get_up_tiproxys(components) + .await + .context(FetchTiProxyTopologySnafu)?; + Ok(()) + } + + fn polish_address( + mut address: String, + tls_config: &Option, + ) -> Result { + let uri: hyper::Uri = address.parse().context(ParseAddressSnafu)?; + if uri.scheme().is_none() { + if tls_config.is_some() { + address = format!("https://{}", address); + } else { + address = format!("http://{}", address); + } + } + + if address.ends_with('/') { + address.pop(); + } + + Ok(address) + } + + fn build_http_client( + tls_config: &Option, + proxy_config: &ProxyConfig, + ) -> Result, FetchError> { + let tls_settings = + MaybeTlsSettings::tls_client(tls_config).context(BuildTlsSettingsSnafu)?; + let http_client = + HttpClient::new(tls_settings, proxy_config).context(BuildHttpClientSnafu)?; + Ok(http_client) + } + + async fn build_etcd_client( + pd_address: &str, + tls_config: &Option, + ) -> Result { + let etcd_connect_opt = Self::build_etcd_connect_opt(tls_config)?; + let etcd_client = etcd_client::Client::connect(&[pd_address], etcd_connect_opt) + .await + .context(BuildEtcdClientSnafu)?; + Ok(etcd_client) + } + + fn build_etcd_connect_opt( + tls_config: &Option, + ) -> Result, FetchError> { + let conn_opt = if let Some(tls_config) = tls_config.as_ref() { + let mut tls_options = etcd_client::TlsOptions::new(); + + if let Some(ca_file) = tls_config.ca_file.as_ref() { + let cacert = read(ca_file).context(ReadCaFileSnafu)?; + tls_options = tls_options.ca_certificate(etcd_client::Certificate::from_pem(cacert)) + } + + if let (Some(crt_file), Some(key_file)) = + (tls_config.crt_file.as_ref(), tls_config.key_file.as_ref()) + { + let cert = read(crt_file).context(ReadCrtFileSnafu)?; + let key = read(key_file).context(ReadKeyFileSnafu)?; + tls_options = tls_options.identity(etcd_client::Identity::from_pem(cert, key)); + } + Some(etcd_client::ConnectOptions::new().with_tls(tls_options)) + } else { + None + }; + + Ok(conn_opt) + } +} + +// #[cfg(test)] +// mod tests { +// use vector::tls::TlsConfig; + +// use super::*; + +// #[tokio::test] +// async fn t() { +// let tls_config = Some(TlsConfig { +// ca_file: Some("/home/zhongzc/.tiup/storage/cluster/clusters/tmp/tls/ca.crt".into()), +// crt_file: Some( +// "/home/zhongzc/.tiup/storage/cluster/clusters/tmp/tls/client.crt".into(), +// ), +// key_file: Some( +// "/home/zhongzc/.tiup/storage/cluster/clusters/tmp/tls/client.pem".into(), +// ), +// ..Default::default() +// }); + +// let proxy_config = ProxyConfig::from_env(); +// let mut fetcher = +// TopologyFetcher::new("localhost:2379".to_owned(), tls_config, &proxy_config) +// .await +// .unwrap(); +// let mut components = HashSet::new(); +// fetcher.get_up_components(&mut components).await.unwrap(); +// // println!("{:#?}", components); +// } +// } diff --git a/src/sources/conprof/topology/fetch/models.rs b/src/sources/conprof/topology/fetch/models.rs new file mode 100644 index 0000000..b8cb9ab --- /dev/null +++ b/src/sources/conprof/topology/fetch/models.rs @@ -0,0 +1,56 @@ +use serde::{Deserialize, Serialize}; + +pub type HealthResponse = Vec; + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct HealthItem { + pub member_id: u64, + pub health: bool, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct MembersResponse { + pub members: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct MemberItem { + pub member_id: u64, + pub client_urls: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct TopologyValue { + pub status_port: u16, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct TiProxyTopologyValue { + pub status_port: String, +} + + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct StoresResponse { + pub stores: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct StoreItem { + pub store: StoreInfo, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct StoreInfo { + pub address: String, + pub status_address: String, + pub state_name: String, + #[serde(default)] + pub labels: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct LabelItem { + pub key: String, + pub value: String, +} diff --git a/src/sources/conprof/topology/fetch/pd.rs b/src/sources/conprof/topology/fetch/pd.rs new file mode 100644 index 0000000..36f0e5b --- /dev/null +++ b/src/sources/conprof/topology/fetch/pd.rs @@ -0,0 +1,109 @@ +use std::collections::HashSet; + +use snafu::{ResultExt, Snafu}; +use vector::http::HttpClient; + +use crate::sources::conprof::topology::fetch::{models, utils}; +use crate::sources::conprof::topology::{Component, InstanceType}; + +#[derive(Debug, Snafu)] +pub enum FetchError { + #[snafu(display("Failed to build request: {}", source))] + BuildRequest { source: http::Error }, + #[snafu(display("Failed to get health: {}", source))] + GetHealth { source: vector::http::HttpError }, + #[snafu(display("Failed to get health text: {}", source))] + GetHealthBytes { source: hyper::Error }, + #[snafu(display("Failed to parse health JSON text: {}", source))] + HealthJsonFromStr { source: serde_json::Error }, + #[snafu(display("Failed to get members: {}", source))] + GetMembers { source: vector::http::HttpError }, + #[snafu(display("Failed to get members text: {}", source))] + GetMembersBytes { source: hyper::Error }, + #[snafu(display("Failed to parse members JSON text: {}", source))] + MembersJsonFromStr { source: serde_json::Error }, + #[snafu(display("Failed to parse pd address: {}", source))] + ParsePDAddress { source: utils::ParseError }, +} + +pub struct PDTopologyFetcher<'a> { + health_path: &'static str, + members_path: &'static str, + + pd_address: &'a str, + http_client: &'a HttpClient, +} + +impl<'a> PDTopologyFetcher<'a> { + pub fn new(pd_address: &'a str, http_client: &'a HttpClient) -> Self { + Self { + health_path: "/pd/api/v1/health", + members_path: "/pd/api/v1/members", + + pd_address, + http_client, + } + } + + pub async fn get_up_pds(&self, components: &mut HashSet) -> Result<(), FetchError> { + let health_resp = self.fetch_pd_health().await?; + let members_resp = self.fetch_pd_members().await?; + + let health_members = health_resp + .iter() + .filter(|h| h.health) + .map(|h| h.member_id) + .collect::>(); + for member in members_resp.members { + if health_members.contains(&member.member_id) { + if let Some(url) = member.client_urls.get(0) { + let (host, port) = utils::parse_host_port(url).context(ParsePDAddressSnafu)?; + components.insert(Component { + instance_type: InstanceType::PD, + host, + primary_port: port, + secondary_port: port, + }); + } + } + } + + Ok(()) + } + + async fn fetch_pd_health(&self) -> Result { + let req = http::Request::get(format!("{}{}", self.pd_address, self.health_path)) + .body(hyper::Body::empty()) + .context(BuildRequestSnafu)?; + + let res = self.http_client.send(req).await.context(GetHealthSnafu)?; + + let body = res.into_body(); + let bytes = hyper::body::to_bytes(body) + .await + .context(GetHealthBytesSnafu)?; + + let health_resp = serde_json::from_slice::(&bytes) + .context(HealthJsonFromStrSnafu)?; + + Ok(health_resp) + } + + async fn fetch_pd_members(&self) -> Result { + let req = http::Request::get(format!("{}{}", self.pd_address, self.members_path)) + .body(hyper::Body::empty()) + .context(BuildRequestSnafu)?; + + let res = self.http_client.send(req).await.context(GetMembersSnafu)?; + + let body = res.into_body(); + let bytes = hyper::body::to_bytes(body) + .await + .context(GetMembersBytesSnafu)?; + + let members_resp = serde_json::from_slice::(&bytes) + .context(MembersJsonFromStrSnafu)?; + + Ok(members_resp) + } +} diff --git a/src/sources/conprof/topology/fetch/store.rs b/src/sources/conprof/topology/fetch/store.rs new file mode 100644 index 0000000..75a038b --- /dev/null +++ b/src/sources/conprof/topology/fetch/store.rs @@ -0,0 +1,100 @@ +use std::collections::HashSet; + +use snafu::{ResultExt, Snafu}; +use vector::http::HttpClient; + +use crate::sources::conprof::topology::fetch::{models, utils}; +use crate::sources::conprof::topology::{Component, InstanceType}; + +#[derive(Debug, Snafu)] +pub enum FetchError { + #[snafu(display("Failed to build request: {}", source))] + BuildRequest { source: http::Error }, + #[snafu(display("Failed to get stores: {}", source))] + GetStores { source: vector::http::HttpError }, + #[snafu(display("Failed to get stores text: {}", source))] + GetStoresBytes { source: hyper::Error }, + #[snafu(display("Failed to parse stores JSON text: {}", source))] + StoresJsonFromStr { source: serde_json::Error }, + #[snafu(display("Failed to parse store address: {}", source))] + ParseStoreAddress { source: utils::ParseError }, +} + +pub struct StoreTopologyFetcher<'a> { + stores_path: &'static str, + + pd_address: &'a str, + http_client: &'a HttpClient, +} + +impl<'a> StoreTopologyFetcher<'a> { + pub fn new(pd_address: &'a str, http_client: &'a HttpClient) -> Self { + Self { + stores_path: "/pd/api/v1/stores", + pd_address, + http_client, + } + } + + pub async fn get_up_stores( + &mut self, + components: &mut HashSet, + ) -> Result<(), FetchError> { + let stores_resp = self.fetch_stores().await?; + + for models::StoreItem { store } in stores_resp.stores { + if !Self::is_up(&store) { + continue; + } + + let (host, primary_port) = + utils::parse_host_port(&store.address).context(ParseStoreAddressSnafu)?; + let (_, secondary_port) = + utils::parse_host_port(&store.status_address).context(ParseStoreAddressSnafu)?; + let instance_type = Self::parse_instance_type(&store); + + components.insert(Component { + instance_type, + host, + primary_port, + secondary_port, + }); + } + + Ok(()) + } + + async fn fetch_stores(&mut self) -> Result { + let req = http::Request::get(format!("{}{}", self.pd_address, self.stores_path)) + .body(hyper::Body::empty()) + .context(BuildRequestSnafu)?; + + let res = self.http_client.send(req).await.context(GetStoresSnafu)?; + + let body = res.into_body(); + let bytes = hyper::body::to_bytes(body) + .await + .context(GetStoresBytesSnafu)?; + + let stores_resp = serde_json::from_slice::(&bytes) + .context(StoresJsonFromStrSnafu)?; + + Ok(stores_resp) + } + + fn is_up(store: &models::StoreInfo) -> bool { + store.state_name.to_lowercase().as_str() == "up" + } + + fn parse_instance_type(store: &models::StoreInfo) -> InstanceType { + if store + .labels + .iter() + .any(|models::LabelItem { key, value }| key == "engine" && value == "tiflash") + { + InstanceType::TiFlash + } else { + InstanceType::TiKV + } + } +} diff --git a/src/sources/conprof/topology/fetch/tidb.rs b/src/sources/conprof/topology/fetch/tidb.rs new file mode 100644 index 0000000..dfcc610 --- /dev/null +++ b/src/sources/conprof/topology/fetch/tidb.rs @@ -0,0 +1,164 @@ +use std::collections::HashSet; +use std::time::{Duration, SystemTime, SystemTimeError, UNIX_EPOCH}; + +use snafu::{ResultExt, Snafu}; + +use crate::sources::conprof::topology::fetch::{models, utils}; +use crate::sources::conprof::topology::{Component, InstanceType}; + +#[derive(Debug, Snafu)] +pub enum FetchError { + #[snafu(display("Failed to get topology: {}", source))] + GetTopology { source: etcd_client::Error }, + #[snafu(display("Failed to read etcd key: {}", source))] + ReadEtcdKey { source: etcd_client::Error }, + #[snafu(display("Failed to read etcd value: {}", source))] + ReadEtcdValue { source: etcd_client::Error }, + #[snafu(display("Missing address in etcd key: {}", key))] + MissingAddress { key: String }, + #[snafu(display("Missing kind in etcd key: {}", key))] + MissingKind { key: String }, + #[snafu(display("Failed to parse ttl: {}", source))] + ParseTTL { source: std::num::ParseIntError }, + #[snafu(display("Time drift occurred: {}", source))] + TimeDrift { source: SystemTimeError }, + #[snafu(display("Failed to parse topology value Json text: {}", source))] + TopologyValueJsonFromStr { source: serde_json::Error }, + #[snafu(display("Failed to parse tidb address: {}", source))] + ParseTiDBAddress { source: utils::ParseError }, +} + +#[allow(clippy::upper_case_acronyms)] +enum EtcdTopology { + TTL { + address: String, + ttl: u128, + }, + Info { + address: String, + value: models::TopologyValue, + }, +} + +pub struct TiDBTopologyFetcher<'a> { + topolgy_prefix: &'static str, + etcd_client: &'a mut etcd_client::Client, +} + +impl<'a> TiDBTopologyFetcher<'a> { + pub fn new(etcd_client: &'a mut etcd_client::Client) -> Self { + Self { + topolgy_prefix: "/topology/tidb/", + etcd_client, + } + } + + pub async fn get_up_tidbs( + &mut self, + components: &mut HashSet, + ) -> Result<(), FetchError> { + let mut up_tidbs = HashSet::new(); + let mut tidbs = Vec::new(); + + let topology_kvs = self.fetch_topology_kvs().await?; + for kv in topology_kvs.kvs() { + match self.parse_kv(kv)? { + Some(EtcdTopology::TTL { address, ttl }) => { + if Self::is_up(ttl)? { + up_tidbs.insert(address); + } + } + Some(EtcdTopology::Info { address, value }) => { + let (host, port) = + utils::parse_host_port(&address).context(ParseTiDBAddressSnafu)?; + tidbs.push(( + address, + Component { + instance_type: InstanceType::TiDB, + host, + primary_port: port, + secondary_port: value.status_port, + }, + )); + } + _ => {} + } + } + + for (address, component) in tidbs { + if up_tidbs.contains(&address) { + components.insert(component); + } + } + + Ok(()) + } + + async fn fetch_topology_kvs(&mut self) -> Result { + let topology_resp = self + .etcd_client + .get( + self.topolgy_prefix, + Some(etcd_client::GetOptions::new().with_prefix()), + ) + .await + .context(GetTopologySnafu)?; + + Ok(topology_resp) + } + + fn parse_kv(&self, kv: &'_ etcd_client::KeyValue) -> Result, FetchError> { + let (key, value) = Self::extract_kv_str(kv)?; + + let remaining_key = &key[self.topolgy_prefix.len()..]; + let mut key_labels = remaining_key.splitn(2, '/'); + let address = key_labels + .next() + .ok_or_else(|| FetchError::MissingAddress { + key: key.to_owned(), + })?; + let kind = key_labels.next().ok_or_else(|| FetchError::MissingKind { + key: key.to_owned(), + })?; + + let res = match kind { + "info" => Some(Self::parse_info(address, value)?), + "ttl" => Some(Self::parse_ttl(address, value)?), + _ => None, + }; + + Ok(res) + } + + fn is_up(ttl: u128) -> Result { + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .context(TimeDriftSnafu)? + .as_nanos(); + Ok(ttl + Duration::from_secs(45).as_nanos() >= now) + } + + fn parse_info(address: &str, value: &str) -> Result { + let info = serde_json::from_str::(value) + .context(TopologyValueJsonFromStrSnafu)?; + Ok(EtcdTopology::Info { + address: address.to_owned(), + value: info, + }) + } + + fn parse_ttl(address: &str, value: &str) -> Result { + let ttl = value.parse::().context(ParseTTLSnafu)?; + Ok(EtcdTopology::TTL { + address: address.to_owned(), + ttl, + }) + } + + fn extract_kv_str(kv: &etcd_client::KeyValue) -> Result<(&str, &str), FetchError> { + let key = kv.key_str().context(ReadEtcdKeySnafu)?; + let value = kv.value_str().context(ReadEtcdValueSnafu)?; + + Ok((key, value)) + } +} diff --git a/src/sources/conprof/topology/fetch/tiproxy.rs b/src/sources/conprof/topology/fetch/tiproxy.rs new file mode 100644 index 0000000..3671add --- /dev/null +++ b/src/sources/conprof/topology/fetch/tiproxy.rs @@ -0,0 +1,167 @@ +use std::collections::HashSet; +use std::time::{Duration, SystemTime, SystemTimeError, UNIX_EPOCH}; + +use snafu::{ResultExt, Snafu}; + +use crate::sources::conprof::topology::fetch::{models, utils}; +use crate::sources::conprof::topology::{Component, InstanceType}; + +#[derive(Debug, Snafu)] +pub enum FetchError { + #[snafu(display("Failed to get topology: {}", source))] + GetTopology { source: etcd_client::Error }, + #[snafu(display("Failed to read etcd key: {}", source))] + ReadEtcdKey { source: etcd_client::Error }, + #[snafu(display("Failed to read etcd value: {}", source))] + ReadEtcdValue { source: etcd_client::Error }, + #[snafu(display("Missing address in etcd key: {}", key))] + MissingAddress { key: String }, + #[snafu(display("Missing kind in etcd key: {}", key))] + MissingKind { key: String }, + #[snafu(display("Failed to parse ttl: {}", source))] + ParseTTL { source: std::num::ParseIntError }, + #[snafu(display("Time drift occurred: {}", source))] + TimeDrift { source: SystemTimeError }, + #[snafu(display("Failed to parse topology value Json text: {}", source))] + TopologyValueJsonFromStr { source: serde_json::Error }, + #[snafu(display("Failed to parse tiproxy address: {}", source))] + ParseTiProxyAddress { source: utils::ParseError }, + #[snafu(display("Failed to parse status_port: {}", source))] + ParseStatusPort { source: std::num::ParseIntError }, +} + +#[allow(clippy::upper_case_acronyms)] +enum EtcdTopology { + TTL { + address: String, + ttl: u128, + }, + Info { + address: String, + value: models::TiProxyTopologyValue, + }, +} + +pub struct TiProxyTopologyFetcher<'a> { + topolgy_prefix: &'static str, + etcd_client: &'a mut etcd_client::Client, +} + +impl<'a> TiProxyTopologyFetcher<'a> { + pub fn new(etcd_client: &'a mut etcd_client::Client) -> Self { + Self { + topolgy_prefix: "/topology/tiproxy/", + etcd_client, + } + } + + pub async fn get_up_tiproxys( + &mut self, + components: &mut HashSet, + ) -> Result<(), FetchError> { + let mut up_tiproxys = HashSet::new(); + let mut tiproxys = Vec::new(); + + let topology_kvs = self.fetch_topology_kvs().await?; + for kv in topology_kvs.kvs() { + match self.parse_kv(kv)? { + Some(EtcdTopology::TTL { address, ttl }) => { + if Self::is_up(ttl)? { + up_tiproxys.insert(address); + } + } + Some(EtcdTopology::Info { address, value }) => { + let (host, primary_port) = + utils::parse_host_port(&address).context(ParseTiProxyAddressSnafu)?; + let secondary_port = value.status_port.parse::().context(ParseStatusPortSnafu)?; + tiproxys.push(( + address, + Component { + instance_type: InstanceType::TiProxy, + host, + primary_port, + secondary_port, + }, + )); + } + _ => {} + } + } + + for (address, component) in tiproxys { + if up_tiproxys.contains(&address) { + components.insert(component); + } + } + + Ok(()) + } + + async fn fetch_topology_kvs(&mut self) -> Result { + let topology_resp = self + .etcd_client + .get( + self.topolgy_prefix, + Some(etcd_client::GetOptions::new().with_prefix()), + ) + .await + .context(GetTopologySnafu)?; + + Ok(topology_resp) + } + + fn parse_kv(&self, kv: &'_ etcd_client::KeyValue) -> Result, FetchError> { + let (key, value) = Self::extract_kv_str(kv)?; + + let remaining_key = &key[self.topolgy_prefix.len()..]; + let mut key_labels = remaining_key.splitn(2, '/'); + let address = key_labels + .next() + .ok_or_else(|| FetchError::MissingAddress { + key: key.to_owned(), + })?; + let kind = key_labels.next().ok_or_else(|| FetchError::MissingKind { + key: key.to_owned(), + })?; + + let res = match kind { + "info" => Some(Self::parse_info(address, value)?), + "ttl" => Some(Self::parse_ttl(address, value)?), + _ => None, + }; + + Ok(res) + } + + fn is_up(ttl: u128) -> Result { + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .context(TimeDriftSnafu)? + .as_nanos(); + Ok(ttl + Duration::from_secs(45).as_nanos() >= now) + } + + fn parse_info(address: &str, value: &str) -> Result { + let info = serde_json::from_str::(value) + .context(TopologyValueJsonFromStrSnafu)?; + Ok(EtcdTopology::Info { + address: address.to_owned(), + value: info, + }) + } + + fn parse_ttl(address: &str, value: &str) -> Result { + let ttl = value.parse::().context(ParseTTLSnafu)?; + Ok(EtcdTopology::TTL { + address: address.to_owned(), + ttl, + }) + } + + fn extract_kv_str(kv: &etcd_client::KeyValue) -> Result<(&str, &str), FetchError> { + let key = kv.key_str().context(ReadEtcdKeySnafu)?; + let value = kv.value_str().context(ReadEtcdValueSnafu)?; + + Ok((key, value)) + } +} diff --git a/extensions/topsql/src/topology/fetch/utils.rs b/src/sources/conprof/topology/fetch/utils.rs similarity index 100% rename from extensions/topsql/src/topology/fetch/utils.rs rename to src/sources/conprof/topology/fetch/utils.rs diff --git a/src/sources/conprof/topology/mod.rs b/src/sources/conprof/topology/mod.rs new file mode 100644 index 0000000..7c47bec --- /dev/null +++ b/src/sources/conprof/topology/mod.rs @@ -0,0 +1,55 @@ +mod fetch; + +use std::fmt; + +pub use fetch::{FetchError, TopologyFetcher}; + +#[derive(Debug, Copy, Clone, Eq, Hash, PartialEq)] +pub enum InstanceType { + PD, + TiDB, + TiKV, + TiFlash, + TiProxy, +} + +impl fmt::Display for InstanceType { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + InstanceType::PD => write!(f, "pd"), + InstanceType::TiDB => write!(f, "tidb"), + InstanceType::TiKV => write!(f, "tikv"), + InstanceType::TiFlash => write!(f, "tiflash"), + InstanceType::TiProxy => write!(f, "tiproxy"), + } + } +} + +#[derive(Debug, Clone, Eq, Hash, PartialEq)] +pub struct Component { + pub instance_type: InstanceType, + pub host: String, + pub primary_port: u16, + pub secondary_port: u16, +} + +impl Component { + pub fn conprof_address(&self) -> Option { + match self.instance_type { + InstanceType::PD => Some(format!("{}:{}", self.host, self.primary_port)), + InstanceType::TiDB | InstanceType::TiKV | InstanceType::TiFlash | InstanceType::TiProxy => { + Some(format!("{}:{}", self.host, self.secondary_port)) + } + } + } +} + +impl fmt::Display for Component { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "{}({}:{}, {}:{})", + self.instance_type, self.host, self.primary_port, self.host, self.secondary_port + ) + } +} diff --git a/src/sources/conprof/upstream.rs b/src/sources/conprof/upstream.rs new file mode 100644 index 0000000..d881f36 --- /dev/null +++ b/src/sources/conprof/upstream.rs @@ -0,0 +1,306 @@ +use std::time::Duration; + +use base64::{prelude::*, Engine}; +use chrono::Utc; +use reqwest::{Certificate, Client, Identity}; +use vector::{internal_events::StreamClosedError, SourceSender}; +use vector_lib::{ + internal_event::InternalEvent, + tls::TlsConfig, + {event::LogEvent, tls::TlsSettings}, +}; + +use crate::sources::conprof::{ + shutdown::ShutdownSubscriber, + tools::fetch_raw, + topology::{Component, InstanceType}, +}; + +pub struct ConprofSource { + client: Client, + // instance: String, + instance_b64: String, + instance_type: InstanceType, + uri: String, + + tls: Option, + out: SourceSender, + // init_retry_delay: Duration, + // retry_delay: Duration, + enable_tikv_heap_profile: bool, +} + +impl ConprofSource { + pub async fn new( + component: Component, + tls: Option, + out: SourceSender, + // init_retry_delay: Duration, + enable_tikv_heap_profile: bool, + ) -> Option { + let mut builder = reqwest::Client::builder(); + if let Some(tls) = tls.clone() { + let ca_file = tls.ca_file.clone().expect("tls ca file must be provided"); + let ca = match tokio::fs::read(ca_file).await { + Ok(v) => v, + Err(err) => { + error!(message = "Failed to read tls ca file", error = %err); + return None; + } + }; + let settings = TlsSettings::from_options(&Some(tls)).expect("invalid tls settings"); + let (crt, key) = settings.identity_pem().expect("invalid identity pem"); + builder = builder + .add_root_certificate(Certificate::from_pem(&ca).expect("invalid ca")) + .identity(Identity::from_pkcs8_pem(&crt, &key).expect("invalid crt & key")); + } + let client = match builder + .timeout(Duration::from_secs(60)) + .connect_timeout(Duration::from_secs(10)) + .build() + { + Ok(client) => client, + Err(err) => { + error!(message = "Failed to build reqwest client", %err); + return None; + } + }; + match component.conprof_address() { + Some(address) => Some(ConprofSource { + client, + // instance: address.clone(), + instance_b64: BASE64_URL_SAFE_NO_PAD.encode(&address), + instance_type: component.instance_type, + uri: if tls.is_some() { + format!("https://{}", address) + } else { + format!("http://{}", address) + }, + + tls, + out, + // init_retry_delay, + // retry_delay: init_retry_delay, + enable_tikv_heap_profile, + }), + None => None, + } + } + + pub async fn run(mut self, mut shutdown: ShutdownSubscriber) { + let shutdown_subscriber = shutdown.clone(); + tokio::select! { + _ = self.run_loop(shutdown_subscriber) => {} + _ = shutdown.done() => {} + } + } + + async fn run_loop(&mut self, mut shutdown: ShutdownSubscriber) { + loop { + let mut ts = Utc::now().timestamp(); + ts -= ts % 60; + let next_minute_ts = ts + 60; + match self.instance_type { + InstanceType::TiDB | InstanceType::PD | InstanceType::TiProxy => { + self.fetch_goroutine( + format!( + "{}-{}-goroutine-{}", + ts, self.instance_type, self.instance_b64 + ), + shutdown.clone(), + ) + .await; + self.fetch_mutex( + format!("{}-{}-mutex-{}", ts, self.instance_type, self.instance_b64), + shutdown.clone(), + ) + .await; + self.fetch_heap( + format!("{}-{}-heap-{}", ts, self.instance_type, self.instance_b64), + shutdown.clone(), + ) + .await; + self.fetch_cpu( + format!("{}-{}-cpu-{}", ts, self.instance_type, self.instance_b64), + shutdown.clone(), + ) + .await; + } + InstanceType::TiKV => { + self.fetch_cpu( + format!("{}-{}-cpu-{}", ts, self.instance_type, self.instance_b64), + shutdown.clone(), + ) + .await; + if self.enable_tikv_heap_profile { + self.fetch_heap_with_jeprof( + format!("{}-{}-heap-{}", ts, self.instance_type, self.instance_b64), + shutdown.clone(), + ) + .await; + } + } + InstanceType::TiFlash => { + // do nothing. + } + }; + let now = Utc::now().timestamp(); + if now < next_minute_ts { + tokio::select! { + _ = shutdown.done() => break, + _ = tokio::time::sleep(Duration::from_secs((next_minute_ts - now + 1) as u64)) => {}, + } + } + } + } + + async fn fetch_cpu(&mut self, filename: String, mut shutdown: ShutdownSubscriber) { + tokio::select! { + _ = shutdown.done() => {} + resp = self.client.get(format!("{}/debug/pprof/profile?seconds=10", self.uri)) + .header("Content-Type", "application/protobuf") + .send() => { + match resp { + Ok(resp) => { + let status = resp.status(); + if !status.is_success() { + error!(message = "Failed to fetch cpu", status = status.as_u16()); + return; + } + let body = match resp.bytes().await { + Ok(body) => body, + Err(err) => { + error!(message = "Failed to read body bytes", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(BASE64_STANDARD.encode(&body)); + event.insert("filename", filename); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!(message = "Failed to fetch cpu", %err); + } + } + } + } + } + + async fn fetch_heap(&mut self, filename: String, mut shutdown: ShutdownSubscriber) { + tokio::select! { + _ = shutdown.done() => {} + resp = self.client.get(format!("{}/debug/pprof/heap", self.uri)).send() => { + match resp { + Ok(resp) => { + let status = resp.status(); + if !status.is_success() { + error!(message = "Failed to fetch heap", status = status.as_u16()); + return; + } + let body = match resp.bytes().await { + Ok(body) => body, + Err(err) => { + error!(message = "Failed to read body bytes", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(BASE64_STANDARD.encode(&body)); + event.insert("filename", filename); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!(message = "Failed to fetch heap", %err); + } + } + } + } + } + + async fn fetch_mutex(&mut self, filename: String, mut shutdown: ShutdownSubscriber) { + tokio::select! { + _ = shutdown.done() => {} + resp = self.client.get(format!("{}/debug/pprof/mutex", self.uri)).send() => { + match resp { + Ok(resp) => { + let status = resp.status(); + if !status.is_success() { + error!(message = "Failed to fetch mutex", status = status.as_u16()); + return; + } + let body = match resp.bytes().await { + Ok(body) => body, + Err(err) => { + error!(message = "Failed to read body bytes", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(BASE64_STANDARD.encode(&body)); + event.insert("filename", filename); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!(message = "Failed to fetch mutex", %err); + } + } + } + } + } + + async fn fetch_goroutine(&mut self, filename: String, mut shutdown: ShutdownSubscriber) { + tokio::select! { + _ = shutdown.done() => {} + resp = self.client.get(format!("{}/debug/pprof/goroutine", self.uri)).send() => { + match resp { + Ok(resp) => { + let status = resp.status(); + if !status.is_success() { + error!(message = "Failed to fetch goroutine", status = status.as_u16()); + return; + } + let body = match resp.bytes().await { + Ok(body) => body, + Err(err) => { + error!(message = "Failed to read body bytes", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(BASE64_STANDARD.encode(&body)); + event.insert("filename", filename); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!(message = "Failed to fetch goroutine", %err); + } + } + } + } + } + + async fn fetch_heap_with_jeprof(&mut self, filename: String, mut shutdown: ShutdownSubscriber) { + tokio::select! { + _ = shutdown.done() => {} + resp = fetch_raw(format!("{}/debug/pprof/heap", self.uri), self.tls.clone()) => { + match resp { + Ok(resp) => { + let mut event = LogEvent::from_str_legacy(BASE64_STANDARD.encode(&resp)); + event.insert("filename", filename); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!("Failed to fetch heap with jeprof: {}", err); + } + } + } + } + } +} diff --git a/extensions/filename/src/lib.rs b/src/sources/filename.rs similarity index 85% rename from extensions/filename/src/lib.rs rename to src/sources/filename.rs index 0806eb2..61f9569 100644 --- a/extensions/filename/src/lib.rs +++ b/src/sources/filename.rs @@ -1,6 +1,3 @@ -#[macro_use] -extern crate tracing; - use std::io::Error; use std::path::{Path, PathBuf}; use std::time::Duration; @@ -9,18 +6,21 @@ use file_source::paths_provider::glob::{Glob, MatchOptions}; use file_source::paths_provider::PathsProvider; use file_source::FileSourceInternalEvents; use metrics::counter; -use vector::config::{DataType, Output, SourceConfig, SourceContext}; -use vector::internal_events::prelude::{error_stage, error_type}; +use vector::config::{SourceConfig, SourceContext}; use vector::internal_events::StreamClosedError; -use vector::sources::Source; -use vector::{emit, impl_generate_config_from_default}; -use vector_config::configurable_component; -use vector_core::event::LogEvent; -use vector_core::internal_event::InternalEvent; +use vector_lib::{ + config::{DataType, LogNamespace, SourceOutput}, + configurable::configurable_component, + emit, + event::LogEvent, + impl_generate_config_from_default, + internal_event::{error_stage, error_type, InternalEvent}, + source::Source, +}; /// Configuration for the `filename` source. -#[configurable_component(source)] -#[derive(Clone, Debug, PartialEq)] +#[configurable_component(source("filename"))] +#[derive(Debug, Clone)] #[serde(deny_unknown_fields, default)] pub struct FilenameConfig { /// Array of file patterns to include. [Globbing](https://vector.dev/docs/reference/configuration/sources/file/#globbing) is supported. @@ -73,12 +73,12 @@ impl SourceConfig for FilenameConfig { .into_iter() .filter(|path| path.metadata().map(|m| m.is_file()).unwrap_or_default()) .filter_map(|filepath| filepath.to_str().map(|s| s.to_owned())) - .map(LogEvent::from) + .map(LogEvent::from_str_legacy) .collect::>(); let count = events.len(); - cx.out.send_batch(events).await.map_err(|error| { - emit!(StreamClosedError { error, count }); + cx.out.send_batch(events).await.map_err(|_| { + emit!(StreamClosedError { count }); })?; tokio::select! { @@ -91,12 +91,12 @@ impl SourceConfig for FilenameConfig { })) } - fn outputs(&self) -> Vec { - vec![Output::default(DataType::Log)] - } - - fn source_type(&self) -> &'static str { - "filename" + fn outputs(&self, _: LogNamespace) -> Vec { + vec![SourceOutput { + port: None, + ty: DataType::Log, + schema_definition: None, + }] } fn can_acknowledge(&self) -> bool { @@ -145,7 +145,7 @@ impl FileSourceInternalEvents for OnlyGlob { fn emit_file_watch_error(&self, _: &Path, _: Error) {} - fn emit_file_unwatched(&self, _: &Path) {} + fn emit_file_unwatched(&self, _: &Path, _: bool) {} fn emit_file_deleted(&self, _: &Path) {} diff --git a/src/sources/keyviz.rs b/src/sources/keyviz.rs new file mode 100644 index 0000000..9c4404a --- /dev/null +++ b/src/sources/keyviz.rs @@ -0,0 +1,538 @@ +use std::{collections::HashSet, sync::Arc, time::Duration}; + +use chrono::Utc; +use rand::Rng; +use reqwest::{Certificate, Client, Identity}; +use serde::{Deserialize, Serialize}; +use tokio::sync::Mutex; +use vector::{ + config::{GenerateConfig, SourceConfig, SourceContext}, + event::LogEvent, + internal_events::StreamClosedError, + tls::TlsSettings, + SourceSender, +}; +use vector_lib::{ + config::{DataType, LogNamespace, SourceOutput}, + configurable::configurable_component, + internal_event::InternalEvent, + source::Source, + tls::TlsConfig, +}; + +use super::topsql::topology::{InstanceType, TopologyFetcher}; + +const DEFAULT_MAX_REGIONS_PER_PD_REQUEST: usize = 51200; + +/// PLACEHOLDER +#[configurable_component(source("keyviz"))] +#[derive(Debug, Clone)] +pub struct KeyvizConfig { + /// PLACEHOLDER + pub pd_address: String, + + /// PLACEHOLDER + pub tls: Option, + + /// PLACEHOLDER + pub max_regions_per_pd_request: Option, +} + +impl GenerateConfig for KeyvizConfig { + fn generate_config() -> toml::Value { + toml::Value::try_from(Self { + pd_address: "127.0.0.1:2379".to_owned(), + tls: None, + max_regions_per_pd_request: Some(DEFAULT_MAX_REGIONS_PER_PD_REQUEST), + }) + .unwrap() + } +} + +#[async_trait::async_trait] +#[typetag::serde(name = "keyviz")] +impl SourceConfig for KeyvizConfig { + async fn build(&self, mut cx: SourceContext) -> vector::Result { + self.validate_tls()?; + let tls = self.tls.clone(); + let pd_address = if tls.is_some() { + format!("https://{}", self.pd_address) + } else { + format!("http://{}", self.pd_address) + }; + + let mut builder = reqwest::Client::builder(); + if let Some(tls) = tls.clone() { + let ca_file = tls.ca_file.clone().expect("tls ca file must be provided"); + let ca = match tokio::fs::read(ca_file).await { + Ok(v) => v, + Err(err) => { + error!(message = "Failed to read tls ca file", error = %err); + return Err(Box::new(err)); + } + }; + let settings = TlsSettings::from_options(&Some(tls)).expect("invalid tls settings"); + let (crt, key) = settings.identity_pem().expect("invalid identity pem"); + builder = builder + .add_root_certificate(Certificate::from_pem(&ca).expect("invalid ca")) + .identity(Identity::from_pkcs8_pem(&crt, &key).expect("invalid crt & key")); + } + + let client = match builder + .timeout(Duration::from_secs(60)) + .connect_timeout(Duration::from_secs(10)) + .build() + { + Ok(client) => client, + Err(err) => { + error!(message = "Failed to build reqwest client", %err); + return Err(Box::new(err)); + } + }; + + let mut topo = TopologyFetcher::new(pd_address.clone(), tls.clone(), &cx.proxy).await?; + let mut etcd = topo.etcd_client.clone(); + let max_regions_per_pd_request = self.max_regions_per_pd_request; + Ok(Box::pin(async move { + tokio::time::sleep(Duration::from_secs(30)).await; // protect crash loop + + let tidb_instances = Arc::new(Mutex::new(Vec::new())); + { + let tidb_instances = tidb_instances.clone(); + let mut shutdown = cx.shutdown.clone(); + tokio::spawn(async move { + loop { + tokio::select! { + _ = &mut shutdown => break, + _ = fetch_and_update_tidb_instances(&mut topo, tidb_instances.clone()) => {}, + } + tokio::select! { + _ = &mut shutdown => break, + _ = tokio::time::sleep(Duration::from_secs(600)) => {}, + } + } + }); + } + + { + let https = tls.is_some(); + let mut shutdown = cx.shutdown.clone(); + let mut client = client.clone(); + let mut out = cx.out.clone(); + tokio::spawn(async move { + let mut schema_version = -1; + loop { + tokio::select! { + _ = &mut shutdown => break, + _ = fetch_and_send_tidb_schema( + &mut client, + https, + &mut etcd, + &mut schema_version, + &mut out, + tidb_instances.clone(), + ) => {}, + } + tokio::select! { + _ = &mut shutdown => break, + _ = tokio::time::sleep(Duration::from_secs(60)) => {}, + } + } + }); + } + + loop { + let now = Utc::now(); + let filename = format!("{}.json", now.format("%Y%m%d%H%M").to_string()); + let mut ts = now.timestamp(); + ts -= ts % 60; + let next_minute_ts = ts + 60; + tokio::select! { + _ = &mut cx.shutdown => break, + _ = fetch_and_send_regions( + client.clone(), + &pd_address, + &mut cx.out, + filename, + max_regions_per_pd_request, + ) => {}, + } + let now = Utc::now().timestamp(); + if now < next_minute_ts { + tokio::select! { + _ = &mut cx.shutdown => break, + _ = tokio::time::sleep(Duration::from_secs((next_minute_ts - now + 1) as u64)) => {}, + } + } + } + Ok(()) + })) + } + + fn outputs(&self, _: LogNamespace) -> Vec { + vec![SourceOutput { + port: None, + ty: DataType::Log, + schema_definition: None, + }] + } + + fn can_acknowledge(&self) -> bool { + false + } +} + +impl KeyvizConfig { + fn check_key_file( + tag: &str, + path: &Option, + ) -> vector::Result> { + if path.is_none() { + return Ok(None); + } + match std::fs::File::open(path.as_ref().unwrap()) { + Err(e) => Err(format!("failed to open {:?} to load {}: {:?}", path, tag, e).into()), + Ok(f) => Ok(Some(f)), + } + } + + fn validate_tls(&self) -> vector::Result<()> { + if self.tls.is_none() { + return Ok(()); + } + let tls = self.tls.as_ref().unwrap(); + if (tls.ca_file.is_some() || tls.crt_file.is_some() || tls.key_file.is_some()) + && (tls.ca_file.is_none() || tls.crt_file.is_none() || tls.key_file.is_none()) + { + return Err("ca, cert and private key should be all configured.".into()); + } + Self::check_key_file("ca key", &tls.ca_file)?; + Self::check_key_file("cert key", &tls.crt_file)?; + Self::check_key_file("private key", &tls.key_file)?; + Ok(()) + } +} + +#[derive(Debug, Deserialize, Serialize)] +struct RegionsInfo { + count: usize, + regions: Vec, +} + +#[derive(Debug, Deserialize, Serialize)] +struct RegionInfo { + start_key: String, + end_key: String, + written_bytes: u64, + read_bytes: u64, + written_keys: u64, + read_keys: u64, +} + +async fn fetch_and_send_regions( + client: Client, + pd_address: &str, + out: &mut SourceSender, + filename: String, + max_regions_per_pd_request: Option, +) { + match fetch_regions(client.clone(), pd_address, max_regions_per_pd_request).await { + Ok(regions) => { + let json = match serde_json::to_string(®ions) { + Ok(v) => v, + Err(err) => { + error!(message = "Failed to serialize regions json", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(json); + event.insert("filename", filename); + if out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } + } + Err(err) => { + error!(message = "Failed to fetch regions", %err); + return; + } + } +} + +async fn fetch_regions( + client: Client, + pd_address: &str, + max_regions_per_pd_request: Option, +) -> reqwest::Result { + let mut all = RegionsInfo { + count: 0, + regions: vec![], + }; + let mut start_key = Vec::new(); + loop { + let mut regions = fetch_regions_part( + client.clone(), + pd_address, + &start_key, + &[], + max_regions_per_pd_request.unwrap_or(DEFAULT_MAX_REGIONS_PER_PD_REQUEST), + ) + .await?; + // for region in &mut regions.regions { + // let start_bytes = match hex::decode(®ion.start_key) { + // Ok(v) => v, + // Err(err) => { + // error!(message = "Failed to decode regions info start key", %err); + // continue; + // } + // }; + // let end_bytes = match hex::decode(®ion.end_key) { + // Ok(v) => v, + // Err(err) => { + // error!(message = "Failed to decode regions info end key", %err); + // continue; + // } + // }; + // region.start_key = unsafe { String::from_utf8_unchecked(start_bytes) }; + // region.end_key = unsafe { String::from_utf8_unchecked(end_bytes) }; + // } + let last_key = regions.regions.last().map(|r| r.end_key.clone()); + all.regions.append(&mut regions.regions); + all.count += regions.count; + start_key = match last_key { + None => break, + Some(last_key) => { + if last_key == "" { + break; + } + match hex::decode(&last_key) { + Err(_) => break, + Ok(last_key_bytes) => last_key_bytes, + } + } + }; + } + Ok(all) +} + +async fn fetch_regions_part( + client: Client, + pd_address: &str, + key: &[u8], + end_key: &[u8], + limit: usize, +) -> reqwest::Result { + let encoded_key = url::form_urlencoded::byte_serialize(key).collect::(); + let encoded_end_key = url::form_urlencoded::byte_serialize(end_key).collect::(); + let url = format!( + "{}/pd/api/v1/regions/key?end_key={}&key={}&limit={}", + pd_address, encoded_end_key, encoded_key, limit + ); + info!("sending pd request: {}", url); + client.get(url).send().await?.json().await +} + +#[derive(Debug, Deserialize, Serialize)] +struct DBTablesInfo { + db: DBInfo, + tables: Vec, +} + +#[derive(Debug, Deserialize, Serialize)] +struct DBInfo { + id: i64, + db_name: CIStr, + state: u8, +} + +#[derive(Debug, Deserialize, Serialize)] +struct TableInfo { + id: i64, + name: CIStr, + index_info: Option>>, + partition: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +struct IndexInfo { + id: i64, + idx_name: CIStr, +} + +#[derive(Debug, Deserialize, Serialize)] +struct PartitionInfo { + enable: bool, + definitions: Option>>, +} + +#[derive(Debug, Deserialize, Serialize)] +struct PartitionDefinition { + id: i64, + name: CIStr, +} + +#[derive(Debug, Deserialize, Serialize)] +struct CIStr { + #[serde(rename = "O")] + o: String, + #[serde(rename = "L")] + l: String, +} + +async fn fetch_and_update_tidb_instances( + topo: &mut TopologyFetcher, + tidb_instances: Arc>>, +) { + let mut components = HashSet::new(); + if let Err(err) = topo.get_up_components(&mut components).await { + warn!(message = "Failed to fetch topology", %err); + return; + } + let mut tidbs = vec![]; + for component in components { + if component.instance_type == InstanceType::TiDB { + tidbs.push(format!("{}:{}", component.host, component.secondary_port)); + } + } + *(tidb_instances.lock().await) = tidbs; +} + +async fn fetch_and_send_tidb_schema( + client: &mut Client, + https: bool, + etcd: &mut etcd_client::Client, + schema_version: &mut i32, + out: &mut SourceSender, + tidb_instances: Arc>>, +) { + let resp = match etcd.get("/tidb/ddl/global_schema_version", None).await { + Ok(v) => v, + Err(err) => { + warn!(message = "Failed to fetch tidb schema version", %err); + return; + } + }; + let kvs = resp.kvs(); + if kvs.len() != 1 { + warn!(message = "Failed to fetch tidb schema version, invalid response"); + return; + } + let value = match String::from_utf8(kvs[0].value().to_owned()) { + Ok(v) => v, + Err(err) => { + warn!(message = "Failed to parse tidb schema version", %err); + return; + } + }; + let new_schema_version = match value.parse::() { + Ok(v) => v, + Err(err) => { + warn!(message = "Failed to parse tidb schema version", %err); + return; + } + }; + if new_schema_version == *schema_version { + return; + } + let tidb_instance = { + let tidb_instances = tidb_instances.lock().await; + if tidb_instances.is_empty() { + return; + } + let idx = rand::thread_rng().gen_range(0..tidb_instances.len()); + tidb_instances[idx].clone() + }; + let dbinfos = match fetch_tidb_dbinfos(client, https, &tidb_instance).await { + Ok(v) => v, + Err(err) => { + warn!(message = "Failed to fetch tidb db info", %err); + return; + } + }; + let mut db_tables = Vec::with_capacity(dbinfos.len()); + let mut update_success = true; + for dbinfo in dbinfos { + if dbinfo.state == 0 { + continue; + } + let tableinfos = + match fetch_tidb_tableinfos(client, https, &tidb_instance, &dbinfo.db_name.o).await { + Ok(v) => v, + Err(err) => { + update_success = false; + warn!(message = "Failed to fetch tidb table info", %err); + continue; + } + }; + db_tables.push(DBTablesInfo { + db: dbinfo, + tables: tableinfos, + }) + } + if update_success { + *schema_version = new_schema_version; + } + let json = match serde_json::to_string(&db_tables) { + Ok(v) => v, + Err(err) => { + error!(message = "Failed to serialize tidb schema json", %err); + return; + } + }; + let mut event = LogEvent::from_str_legacy(json); + event.insert("filename", "tidb-schema"); + if out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); + } +} + +async fn fetch_tidb_dbinfos( + client: &mut Client, + https: bool, + tidb_instance: &str, +) -> reqwest::Result> { + let schema = if tidb_instance.starts_with("http") { + "" + } else if https { + "https://" + } else { + "http://" + }; + client + .get(format!("{}{}/schema", schema, tidb_instance)) + .send() + .await? + .json() + .await +} + +async fn fetch_tidb_tableinfos( + client: &mut Client, + https: bool, + tidb_instance: &str, + dbname: &str, +) -> reqwest::Result> { + let schema = if tidb_instance.starts_with("http") { + "" + } else if https { + "https://" + } else { + "http://" + }; + let dbname = url::form_urlencoded::byte_serialize(dbname.as_bytes()).collect::(); + client + .get(format!("{}{}/schema/{}", schema, tidb_instance, dbname)) + .send() + .await? + .json() + .await +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn generate_config() { + vector::test_util::test_generate_config::(); + } +} diff --git a/src/sources/mod.rs b/src/sources/mod.rs new file mode 100644 index 0000000..6c8b098 --- /dev/null +++ b/src/sources/mod.rs @@ -0,0 +1,4 @@ +pub mod conprof; +pub mod filename; +pub mod keyviz; +pub mod topsql; diff --git a/extensions/topsql/src/controller.rs b/src/sources/topsql/controller.rs similarity index 90% rename from extensions/topsql/src/controller.rs rename to src/sources/topsql/controller.rs index 1fa295c..cc6334f 100644 --- a/extensions/topsql/src/controller.rs +++ b/src/sources/topsql/controller.rs @@ -2,14 +2,13 @@ use std::collections::{HashMap, HashSet}; use std::time::Duration; use tracing::instrument::Instrument; -use vector::config::ProxyConfig; use vector::shutdown::ShutdownSignal; -use vector::tls::TlsConfig; use vector::SourceSender; +use vector_lib::{config::proxy::ProxyConfig, tls::TlsConfig}; -use crate::shutdown::{pair, ShutdownNotifier, ShutdownSubscriber}; -use crate::topology::{Component, FetchError, TopologyFetcher}; -use crate::upstream::TopSQLSource; +use crate::sources::topsql::shutdown::{pair, ShutdownNotifier, ShutdownSubscriber}; +use crate::sources::topsql::topology::{Component, FetchError, TopologyFetcher}; +use crate::sources::topsql::upstream::TopSQLSource; pub struct Controller { topo_fetch_interval: Duration, @@ -23,6 +22,8 @@ pub struct Controller { tls: Option, init_retry_delay: Duration, + top_n: usize, + downsampling_interval: u32, out: SourceSender, } @@ -32,6 +33,8 @@ impl Controller { pd_address: String, topo_fetch_interval: Duration, init_retry_delay: Duration, + top_n: usize, + downsampling_interval: u32, tls_config: Option, proxy_config: &ProxyConfig, out: SourceSender, @@ -48,6 +51,8 @@ impl Controller { shutdown_subscriber, tls: tls_config, init_retry_delay, + top_n, + downsampling_interval, out, }) } @@ -112,6 +117,8 @@ impl Controller { self.tls.clone(), self.out.clone(), self.init_retry_delay, + self.top_n, + self.downsampling_interval, ); let source = match source { Some(source) => source, diff --git a/extensions/topsql/src/config.rs b/src/sources/topsql/mod.rs similarity index 68% rename from extensions/topsql/src/config.rs rename to src/sources/topsql/mod.rs index e8c3b93..688a02f 100644 --- a/extensions/topsql/src/config.rs +++ b/src/sources/topsql/mod.rs @@ -1,21 +1,48 @@ use std::time::Duration; -use serde::{Deserialize, Serialize}; -use vector::config::{self, GenerateConfig, Output, SourceConfig, SourceContext}; -use vector::sources; -use vector::tls::TlsConfig; +use vector::config::{GenerateConfig, SourceConfig, SourceContext}; +use vector_lib::{ + config::{DataType, LogNamespace, SourceOutput}, + configurable::configurable_component, + source::Source, + tls::TlsConfig, +}; -use crate::controller::Controller; +use crate::sources::topsql::controller::Controller; -#[derive(Deserialize, Serialize, Clone, Debug)] +#[cfg(test)] +pub use upstream::parser; + +mod controller; +mod shutdown; +pub mod topology; +mod upstream; + +/// PLACEHOLDER +#[configurable_component(source("topsql"))] +#[derive(Debug, Clone)] pub struct TopSQLConfig { + /// PLACEHOLDER pub pd_address: String, + + /// PLACEHOLDER pub tls: Option, + /// PLACEHOLDER #[serde(default = "default_init_retry_delay")] pub init_retry_delay_seconds: f64, + + /// PLACEHOLDER #[serde(default = "default_topology_fetch_interval")] pub topology_fetch_interval_seconds: f64, + + /// PLACEHOLDER + #[serde(default = "default_top_n")] + pub top_n: usize, + + /// PLACEHOLDER + #[serde(default = "default_downsampling_interval")] + pub downsampling_interval: u32, } pub const fn default_init_retry_delay() -> f64 { @@ -26,6 +53,14 @@ pub const fn default_topology_fetch_interval() -> f64 { 30.0 } +pub const fn default_top_n() -> usize { + 0 +} + +pub const fn default_downsampling_interval() -> u32 { + 0 +} + impl GenerateConfig for TopSQLConfig { fn generate_config() -> toml::Value { toml::Value::try_from(Self { @@ -33,6 +68,8 @@ impl GenerateConfig for TopSQLConfig { tls: None, init_retry_delay_seconds: default_init_retry_delay(), topology_fetch_interval_seconds: default_topology_fetch_interval(), + top_n: default_top_n(), + downsampling_interval: default_downsampling_interval(), }) .unwrap() } @@ -41,18 +78,22 @@ impl GenerateConfig for TopSQLConfig { #[async_trait::async_trait] #[typetag::serde(name = "topsql")] impl SourceConfig for TopSQLConfig { - async fn build(&self, cx: SourceContext) -> vector::Result { + async fn build(&self, cx: SourceContext) -> vector::Result { self.validate_tls()?; let pd_address = self.pd_address.clone(); let tls = self.tls.clone(); let topology_fetch_interval = Duration::from_secs_f64(self.topology_fetch_interval_seconds); let init_retry_delay = Duration::from_secs_f64(self.init_retry_delay_seconds); + let top_n = self.top_n; + let downsampling_interval = self.downsampling_interval; Ok(Box::pin(async move { let controller = Controller::new( pd_address, topology_fetch_interval, init_retry_delay, + top_n, + downsampling_interval, tls, &cx.proxy, cx.out, @@ -66,12 +107,12 @@ impl SourceConfig for TopSQLConfig { })) } - fn outputs(&self) -> Vec { - vec![Output::default(config::DataType::Log)] - } - - fn source_type(&self) -> &'static str { - "topsql" + fn outputs(&self, _: LogNamespace) -> Vec { + vec![SourceOutput { + port: None, + ty: DataType::Log, + schema_definition: None, + }] } fn can_acknowledge(&self) -> bool { diff --git a/src/sources/topsql/shutdown.rs b/src/sources/topsql/shutdown.rs new file mode 100644 index 0000000..824a17f --- /dev/null +++ b/src/sources/topsql/shutdown.rs @@ -0,0 +1,232 @@ +use async_recursion::async_recursion; +use tokio::sync::watch; + +pub fn pair() -> (ShutdownNotifier, ShutdownSubscriber) { + let (tx, rx) = watch::channel(()); + ( + ShutdownNotifier { tx }, + ShutdownSubscriber { parent: None, rx }, + ) +} + +pub struct ShutdownNotifier { + tx: watch::Sender<()>, +} + +impl ShutdownNotifier { + pub fn shutdown(&self) { + let _ = self.tx.send(()); + } + + pub async fn wait_for_exit(&self) { + self.tx.closed().await; + } +} + +#[derive(Clone)] +pub struct ShutdownSubscriber { + parent: Option>, + rx: watch::Receiver<()>, +} + +impl ShutdownSubscriber { + #[async_recursion] + pub async fn done(&mut self) { + let rx = &mut self.rx; + match self.parent.as_mut() { + None => { + let _ = rx.changed().await; + } + Some(parent) => { + let parent = parent.as_mut(); + tokio::select! { + _ = parent.done() => {} + _ = rx.changed() => {} + } + } + } + } + + pub fn extend(&self) -> (ShutdownNotifier, ShutdownSubscriber) { + let (tx, rx) = watch::channel(()); + ( + ShutdownNotifier { tx }, + ShutdownSubscriber { + parent: Some(Box::new(self.clone())), + rx, + }, + ) + } +} + +#[cfg(test)] +mod tests { + use std::sync::atomic::{AtomicUsize, Ordering}; + use std::sync::Arc; + + use tokio::time::timeout; + + use super::*; + + #[tokio::test] + async fn ten_subscribers() { + let (notifier, subscriber) = pair(); + + const COUNT: usize = 10; + let done = Arc::new(AtomicUsize::new(0)); + let mut handles = vec![]; + for _ in 0..COUNT { + let done = done.clone(); + let mut subscriber = subscriber.clone(); + handles.push(tokio::spawn(async move { + subscriber.done().await; + done.fetch_add(1, Ordering::SeqCst); + })); + } + drop(subscriber); + + notifier.shutdown(); + notifier.wait_for_exit().await; + assert_eq!(done.load(Ordering::SeqCst), COUNT); + + let _ = futures::future::join_all(handles).await; + } + + #[tokio::test] + async fn no_subscribers() { + let (notifier, _) = pair(); + + notifier.shutdown(); + notifier.wait_for_exit().await; + } + + #[tokio::test] + async fn subscribers_drop_before_wait() { + let (notifier, subscriber) = pair(); + + let mut handles = vec![]; + for _ in 0..5 { + let subscriber = subscriber.clone(); + handles.push(tokio::spawn(async move { + let _s = subscriber; + })); + } + drop(subscriber); + + notifier.shutdown(); + notifier.wait_for_exit().await; + + let _ = futures::future::join_all(handles).await; + } + + #[tokio::test] + async fn notifier_drop_after_spawn() { + let (notifier, subscriber) = pair(); + + let mut handles = vec![]; + for _ in 0..5 { + let mut subscriber = subscriber.clone(); + handles.push(tokio::spawn(async move { + subscriber.done().await; + })); + } + drop((notifier, subscriber)); + + let _ = futures::future::join_all(handles).await; + } + + #[tokio::test] + async fn notifier_drop_before_spawn() { + let (notifier, subscriber) = pair(); + + drop(notifier); + let mut handles = vec![]; + for _ in 0..5 { + let mut subscriber = subscriber.clone(); + handles.push(tokio::spawn(async move { + subscriber.done().await; + })); + } + drop(subscriber); + + let _ = futures::future::join_all(handles).await; + } + + #[tokio::test] + async fn really_wait_for_exit() { + let (notifier, mut subscriber) = pair(); + + let (cont_tx, mut cont_rx) = tokio::sync::mpsc::unbounded_channel(); + let handle = tokio::spawn(async move { + let _ = cont_rx.recv().await; + subscriber.done().await; + }); + + notifier.shutdown(); + + // subscriber is blocked on something and cannot exit, so wait_for_exit is also blocked + assert!( + timeout(std::time::Duration::from_secs(1), notifier.wait_for_exit()) + .await + .is_err() + ); + + // unblock subscriber and wait_for_exit should act well + let _ = cont_tx.send(()); + notifier.wait_for_exit().await; + + let _ = handle.await; + } + + #[tokio::test] + async fn nested_inner_shutdown() { + let (notifier, subscriber) = pair(); + + let handle = tokio::spawn(async move { + let (sub_notifier, mut sub_subscriber) = subscriber.extend(); + + let handle = tokio::spawn(async move { + sub_subscriber.done().await; + }); + + sub_notifier.shutdown(); + sub_notifier.wait_for_exit().await; + let _ = handle.await; + }); + + notifier.wait_for_exit().await; + let _ = handle.await; + } + + #[tokio::test] + async fn nested_outer_shutdown() { + let (notifier, subscriber) = pair(); + + let mut handles = vec![]; + for _ in 0..3 { + let mut subscriber = subscriber.clone(); + handles.push(tokio::spawn(async move { + let mut handles = vec![]; + { + let (sub_notifier, sub_subscriber) = subscriber.extend(); + for _ in 0..3 { + let mut subscriber = sub_subscriber.clone(); + handles.push(tokio::spawn(async move { + subscriber.done().await; + })); + } + drop(sub_subscriber); + sub_notifier.wait_for_exit().await; + } + + subscriber.done().await; + let _ = futures::future::join_all(handles).await; + })); + } + drop(subscriber); + + notifier.shutdown(); + notifier.wait_for_exit().await; + let _ = futures::future::join_all(handles).await; + } +} diff --git a/src/sources/topsql/topology/fetch/mock/mod.rs b/src/sources/topsql/topology/fetch/mock/mod.rs new file mode 100644 index 0000000..4b00d5e --- /dev/null +++ b/src/sources/topsql/topology/fetch/mock/mod.rs @@ -0,0 +1,2 @@ +pub mod pd; +pub mod store; diff --git a/src/sources/topsql/topology/fetch/mock/pd.rs b/src/sources/topsql/topology/fetch/mock/pd.rs new file mode 100644 index 0000000..88bca6b --- /dev/null +++ b/src/sources/topsql/topology/fetch/mock/pd.rs @@ -0,0 +1,138 @@ +#![allow(dead_code)] + +use rand::prelude::SliceRandom; +use serde::{Deserialize, Serialize}; + +#[allow(clippy::upper_case_acronyms)] +#[derive(Clone, Debug)] +pub struct PDURL { + pub client_url: String, + pub peer_url: String, +} + +#[derive(Clone, Debug)] +pub struct PDInfo { + pub pd_url: PDURL, + pub name: String, + pub member_id: u64, + pub deploy_path: String, + pub binary_version: String, + pub git_hash: String, +} + +#[derive(Clone, Debug)] +pub struct PDResponseGenerator { + pub cluster_id: u64, + pub pd_infos: Vec, + pub leader: PDInfo, +} + +pub type Health = Vec; + +#[derive(Deserialize, Serialize, Debug, Clone)] +pub struct HealthItem { + pub name: String, + pub member_id: u64, + pub client_urls: Vec, + pub health: bool, +} + +#[derive(Deserialize, Serialize, Debug, Clone)] +pub struct Members { + pub header: Header, + pub members: Vec, + pub leader: MemberItem, + pub etcd_leader: MemberItem, +} + +#[derive(Deserialize, Serialize, Debug, Clone)] +pub struct Header { + pub cluster_id: u64, +} + +#[derive(Deserialize, Serialize, Debug, Clone)] +pub struct MemberItem { + pub name: String, + pub member_id: u64, + pub peer_urls: Vec, + pub client_urls: Vec, + pub deploy_path: String, + pub binary_version: String, + pub git_hash: String, +} + +impl PDResponseGenerator { + pub fn new(pd_urls: Vec) -> Self { + let binary_version = "v6.1.0"; + let git_hash = "d82f4fab6cf37cd1eca9c3574984e12a7ae27c42"; + + let pd_infos = pd_urls + .into_iter() + .map(|url| { + let uri: hyper::Uri = url.client_url.parse().unwrap(); + + PDInfo { + pd_url: url, + name: format!("pd-{}-{}", uri.host().unwrap(), uri.port().unwrap()), + member_id: rand::random::(), + deploy_path: format!("/deploy/pd-{}/bin", uri.port().unwrap()), + binary_version: binary_version.to_owned(), + git_hash: git_hash.to_owned(), + } + }) + .collect::>(); + + let cluster_id = rand::random::(); + let leader = pd_infos.choose(&mut rand::thread_rng()).unwrap().clone(); + + PDResponseGenerator { + cluster_id, + pd_infos, + leader, + } + } + + pub fn members_resp(&self) -> String { + serde_json::to_string_pretty(&self.members()).unwrap() + } + + pub fn health_resp(&self) -> String { + serde_json::to_string_pretty(&self.health()).unwrap() + } + + pub fn members(&self) -> Members { + Members { + header: Header { + cluster_id: self.cluster_id, + }, + members: self.pd_infos.iter().map(Self::info_to_member).collect(), + leader: Self::info_to_member(&self.leader), + etcd_leader: Self::info_to_member(&self.leader), + } + } + + pub fn health(&self) -> Health { + self.pd_infos.iter().map(Self::info_to_health).collect() + } + + fn info_to_member(info: &PDInfo) -> MemberItem { + MemberItem { + name: info.name.clone(), + member_id: info.member_id, + peer_urls: vec![info.pd_url.peer_url.clone()], + client_urls: vec![info.pd_url.client_url.clone()], + deploy_path: info.deploy_path.clone(), + binary_version: info.binary_version.clone(), + git_hash: info.git_hash.clone(), + } + } + + fn info_to_health(info: &PDInfo) -> HealthItem { + HealthItem { + name: info.name.clone(), + member_id: info.member_id, + client_urls: vec![info.pd_url.client_url.clone()], + health: true, + } + } +} diff --git a/src/sources/topsql/topology/fetch/mock/store.rs b/src/sources/topsql/topology/fetch/mock/store.rs new file mode 100644 index 0000000..01f9c15 --- /dev/null +++ b/src/sources/topsql/topology/fetch/mock/store.rs @@ -0,0 +1,30 @@ +#![allow(dead_code)] + +#[derive(Clone, Debug)] +pub struct TiKVAddress { + pub host: String, + pub port: u16, + pub status_port: u16, +} + +#[derive(Clone, Debug)] +pub struct TiFlashAddress { + pub host: String, + pub tcp_port: u16, + pub http_port: u16, + pub flash_service_port: u16, + pub flash_proxy_port: u16, + pub flash_proxy_status_port: u16, + pub metrics_port: u16, +} + +pub struct StoresResponseGenerator { + pub tikvs: Vec, + pub tiflashs: Vec, +} + +impl StoresResponseGenerator { + pub fn new(tikvs: Vec, tiflashs: Vec) -> Self { + StoresResponseGenerator { tikvs, tiflashs } + } +} diff --git a/extensions/topsql/src/topology/fetch/mod.rs b/src/sources/topsql/topology/fetch/mod.rs similarity index 98% rename from extensions/topsql/src/topology/fetch/mod.rs rename to src/sources/topsql/topology/fetch/mod.rs index 9e292aa..e51ad38 100644 --- a/extensions/topsql/src/topology/fetch/mod.rs +++ b/src/sources/topsql/topology/fetch/mod.rs @@ -15,7 +15,7 @@ use vector::config::ProxyConfig; use vector::http::HttpClient; use vector::tls::{MaybeTlsSettings, TlsConfig}; -use crate::topology::Component; +use crate::sources::topsql::topology::Component; #[derive(Debug, Snafu)] pub enum FetchError { @@ -44,7 +44,7 @@ pub enum FetchError { pub struct TopologyFetcher { pd_address: String, http_client: HttpClient, - etcd_client: etcd_client::Client, + pub etcd_client: etcd_client::Client, } impl TopologyFetcher { diff --git a/extensions/topsql/src/topology/fetch/models.rs b/src/sources/topsql/topology/fetch/models.rs similarity index 100% rename from extensions/topsql/src/topology/fetch/models.rs rename to src/sources/topsql/topology/fetch/models.rs diff --git a/extensions/topsql/src/topology/fetch/pd.rs b/src/sources/topsql/topology/fetch/pd.rs similarity index 96% rename from extensions/topsql/src/topology/fetch/pd.rs rename to src/sources/topsql/topology/fetch/pd.rs index a000563..15f7481 100644 --- a/extensions/topsql/src/topology/fetch/pd.rs +++ b/src/sources/topsql/topology/fetch/pd.rs @@ -3,8 +3,8 @@ use std::collections::HashSet; use snafu::{ResultExt, Snafu}; use vector::http::HttpClient; -use crate::topology::fetch::{models, utils}; -use crate::topology::{Component, InstanceType}; +use crate::sources::topsql::topology::fetch::{models, utils}; +use crate::sources::topsql::topology::{Component, InstanceType}; #[derive(Debug, Snafu)] pub enum FetchError { diff --git a/extensions/topsql/src/topology/fetch/store.rs b/src/sources/topsql/topology/fetch/store.rs similarity index 96% rename from extensions/topsql/src/topology/fetch/store.rs rename to src/sources/topsql/topology/fetch/store.rs index 60edc44..90a79f0 100644 --- a/extensions/topsql/src/topology/fetch/store.rs +++ b/src/sources/topsql/topology/fetch/store.rs @@ -3,8 +3,8 @@ use std::collections::HashSet; use snafu::{ResultExt, Snafu}; use vector::http::HttpClient; -use crate::topology::fetch::{models, utils}; -use crate::topology::{Component, InstanceType}; +use crate::sources::topsql::topology::fetch::{models, utils}; +use crate::sources::topsql::topology::{Component, InstanceType}; #[derive(Debug, Snafu)] pub enum FetchError { diff --git a/extensions/topsql/src/topology/fetch/tidb.rs b/src/sources/topsql/topology/fetch/tidb.rs similarity index 97% rename from extensions/topsql/src/topology/fetch/tidb.rs rename to src/sources/topsql/topology/fetch/tidb.rs index 47acdbf..b21141e 100644 --- a/extensions/topsql/src/topology/fetch/tidb.rs +++ b/src/sources/topsql/topology/fetch/tidb.rs @@ -3,8 +3,8 @@ use std::time::{Duration, SystemTime, SystemTimeError, UNIX_EPOCH}; use snafu::{ResultExt, Snafu}; -use crate::topology::fetch::{models, utils}; -use crate::topology::{Component, InstanceType}; +use crate::sources::topsql::topology::fetch::{models, utils}; +use crate::sources::topsql::topology::{Component, InstanceType}; #[derive(Debug, Snafu)] pub enum FetchError { diff --git a/src/sources/topsql/topology/fetch/utils.rs b/src/sources/topsql/topology/fetch/utils.rs new file mode 100644 index 0000000..b1556cf --- /dev/null +++ b/src/sources/topsql/topology/fetch/utils.rs @@ -0,0 +1,55 @@ +use snafu::{ResultExt, Snafu}; + +#[derive(Debug, Snafu)] +pub enum ParseError { + #[snafu(display("Failed to parse address: {}", source))] + ParseAddress { source: http::uri::InvalidUri }, + #[snafu(display("Missing host in address: {}", address))] + MissingHost { address: String }, + #[snafu(display("Missing port in address: {}", address))] + MissingPort { address: String }, +} + +pub fn parse_host_port(address: &str) -> Result<(String, u16), ParseError> { + let uri: http::Uri = address.parse().context(ParseAddressSnafu)?; + + let host = uri + .host() + .filter(|s| !s.is_empty()) + .ok_or_else(|| ParseError::MissingHost { + address: address.to_owned(), + })?; + let port = uri.port().ok_or_else(|| ParseError::MissingPort { + address: address.to_owned(), + })?; + Ok((host.to_owned(), port.as_u16())) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_address() { + let (addr, port) = parse_host_port("localhost:2379").unwrap(); + assert_eq!(addr, "localhost"); + assert_eq!(port, 2379); + + let (addr, port) = parse_host_port("http://localhost:2379").unwrap(); + assert_eq!(addr, "localhost"); + assert_eq!(port, 2379); + + let (addr, port) = parse_host_port("https://localhost:2379").unwrap(); + assert_eq!(addr, "localhost"); + assert_eq!(port, 2379); + + let err = parse_host_port("localhost").unwrap_err(); + assert!(matches!(err, ParseError::MissingPort { .. })); + + let err = parse_host_port(":2379").unwrap_err(); + assert!(matches!(err, ParseError::MissingHost { .. })); + + let err = parse_host_port("!@#").unwrap_err(); + assert!(matches!(err, ParseError::ParseAddress { .. })); + } +} diff --git a/extensions/topsql/src/topology/mod.rs b/src/sources/topsql/topology/mod.rs similarity index 100% rename from extensions/topsql/src/topology/mod.rs rename to src/sources/topsql/topology/mod.rs diff --git a/extensions/topsql/src/upstream/consts.rs b/src/sources/topsql/upstream/consts.rs similarity index 100% rename from extensions/topsql/src/upstream/consts.rs rename to src/sources/topsql/upstream/consts.rs diff --git a/extensions/topsql/src/upstream/mod.rs b/src/sources/topsql/upstream/mod.rs similarity index 64% rename from extensions/topsql/src/upstream/mod.rs rename to src/sources/topsql/upstream/mod.rs index 536f76a..b4033bc 100644 --- a/extensions/topsql/src/upstream/mod.rs +++ b/src/sources/topsql/upstream/mod.rs @@ -9,20 +9,26 @@ mod utils; use std::time::Duration; use futures::StreamExt; +use tokio::time; use tokio_stream::wrappers::IntervalStream; use tonic::transport::{Channel, Endpoint}; -use vector::internal_events::{BytesReceived, EventsReceived, StreamClosedError}; -use vector::tls::TlsConfig; -use vector::SourceSender; -use vector_core::internal_event::InternalEvent; -use vector_core::ByteSizeOf; - -use crate::shutdown::ShutdownSubscriber; -use crate::topology::{Component, InstanceType}; -use crate::upstream::parser::UpstreamEventParser; -use crate::upstream::tidb::TiDBUpstream; -use crate::upstream::tikv::TiKVUpstream; -use crate::upstream::utils::instance_event; +use vector::{internal_events::StreamClosedError, SourceSender}; +use vector_lib::{ + byte_size_of::ByteSizeOf, + internal_event::{ + ByteSize, BytesReceived, CountByteSize, EventsReceived, InternalEvent, InternalEventHandle, + }, + register, + tls::TlsConfig, +}; + +use crate::sources::topsql::{ + shutdown::ShutdownSubscriber, + topology::{Component, InstanceType}, + upstream::{ + parser::UpstreamEventParser, tidb::TiDBUpstream, tikv::TiKVUpstream, utils::instance_event, + }, +}; #[async_trait::async_trait] pub trait Upstream: Send { @@ -49,10 +55,13 @@ pub struct TopSQLSource { uri: String, tls: Option, + protocal: String, out: SourceSender, init_retry_delay: Duration, retry_delay: Duration, + top_n: usize, + downsampling_interval: u32, } enum State { @@ -68,7 +77,14 @@ impl TopSQLSource { tls: Option, out: SourceSender, init_retry_delay: Duration, + top_n: usize, + downsampling_interval: u32, ) -> Option { + let protocal = if tls.is_none() { + "http".into() + } else { + "https".into() + }; match component.topsql_address() { Some(address) => Some(TopSQLSource { instance: address.clone(), @@ -80,9 +96,12 @@ impl TopSQLSource { }, tls, + protocal, out, init_retry_delay, retry_delay: init_retry_delay, + top_n, + downsampling_interval, }), None => None, } @@ -116,7 +135,7 @@ impl TopSQLSource { timeout_secs = self.retry_delay.as_secs_f64(), "Retrying after timeout." ); - tokio::time::sleep(self.retry_delay).await; + time::sleep(self.retry_delay).await; } } } @@ -128,15 +147,24 @@ impl TopSQLSource { Ok(stream) => stream, Err(state) => return state, }; - let mut instance_stream = - IntervalStream::new(tokio::time::interval(Duration::from_secs(30))); - self.on_connected(); + + let mut tick_stream = IntervalStream::new(time::interval(Duration::from_secs(1))); + let mut instance_stream = IntervalStream::new(time::interval(Duration::from_secs(30))); + let mut responses = vec![]; + let mut last_event_recv_ts = chrono::Local::now().timestamp(); loop { tokio::select! { response = response_stream.next() => { match response { - Some(Ok(response)) => self.handle_response::(response).await, + Some(Ok(response)) => { + register!(BytesReceived { + protocol: self.protocal.clone().into(), + }) + .emit(ByteSize(response.size_of())); + responses.push(response); + last_event_recv_ts = chrono::Local::now().timestamp(); + }, Some(Err(error)) => { error!(message = "Failed to fetch events.", error = %error); break State::RetryDelay; @@ -144,6 +172,14 @@ impl TopSQLSource { None => break State::RetryNow, } } + _ = tick_stream.next() => { + if chrono::Local::now().timestamp() > last_event_recv_ts + 10 { + if !responses.is_empty() { + self.handle_responses::(responses).await; + responses = vec![]; + } + } + } _ = instance_stream.next() => self.handle_instance().await, } } @@ -183,29 +219,35 @@ impl TopSQLSource { Ok(response_stream) } - async fn handle_response(&mut self, response: U::UpstreamEvent) { - BytesReceived { - byte_size: response.size_of(), - protocol: if self.tls.is_none() { "http" } else { "https" }, + async fn handle_responses(&mut self, responses: Vec) { + // truncate top n + let mut responses = if self.top_n > 0 { + U::UpstreamEventParser::keep_top_n(responses, self.top_n) + } else { + responses + }; + // downsample + if self.downsampling_interval > 1 { + U::UpstreamEventParser::downsampling(&mut responses, self.downsampling_interval); } - .emit(); - - let events = U::UpstreamEventParser::parse(response, self.instance.clone()); - let count = events.len(); - EventsReceived { - byte_size: events.size_of(), - count, + // parse + let mut batch = vec![]; + for response in responses { + let mut events = U::UpstreamEventParser::parse(response, self.instance.clone()); + batch.append(&mut events); } - .emit(); - if let Err(error) = self.out.send_batch(events).await { - StreamClosedError { error, count }.emit() + // send + let count = batch.len(); + register!(EventsReceived {}).emit(CountByteSize(count, batch.size_of().into())); + if self.out.send_batch(batch).await.is_err() { + StreamClosedError { count }.emit() } } async fn handle_instance(&mut self) { let event = instance_event(self.instance.clone(), self.instance_type.to_string()); - if let Err(error) = self.out.send_event(event).await { - StreamClosedError { error, count: 1 }.emit(); + if self.out.send_event(event).await.is_err() { + StreamClosedError { count: 1 }.emit(); } } diff --git a/extensions/topsql/src/upstream/parser.rs b/src/sources/topsql/upstream/parser.rs similarity index 77% rename from extensions/topsql/src/upstream/parser.rs rename to src/sources/topsql/upstream/parser.rs index 1009839..5c71f05 100644 --- a/extensions/topsql/src/upstream/parser.rs +++ b/src/sources/topsql/upstream/parser.rs @@ -1,16 +1,22 @@ -use chrono::{DateTime, NaiveDateTime, Utc}; -use vector_core::event::LogEvent; +use chrono::{DateTime, Utc}; +use vector_lib::event::LogEvent; -use crate::upstream::consts::{ - LABEL_INSTANCE, LABEL_INSTANCE_TYPE, LABEL_NAME, LABEL_PLAN_DIGEST, LABEL_SQL_DIGEST, - LABEL_TAG_LABEL, +use crate::sources::topsql::upstream::{ + consts::{ + LABEL_INSTANCE, LABEL_INSTANCE_TYPE, LABEL_NAME, LABEL_PLAN_DIGEST, LABEL_SQL_DIGEST, + LABEL_TAG_LABEL, + }, + utils::make_metric_like_log_event, }; -use crate::upstream::utils::make_metric_like_log_event; pub trait UpstreamEventParser { type UpstreamEvent; fn parse(response: Self::UpstreamEvent, instance: String) -> Vec; + + fn keep_top_n(responses: Vec, top_n: usize) -> Vec; + + fn downsampling(responses: &mut Vec, interval_sec: u32); } pub struct Buf { @@ -69,10 +75,10 @@ impl Buf { pub fn points(&mut self, points: impl Iterator) -> &mut Self { for (timestamp_sec, value) in points { - self.timestamps.push(DateTime::::from_utc( - NaiveDateTime::from_timestamp(timestamp_sec as i64, 0), - Utc, - )); + self.timestamps.push( + DateTime::from_timestamp(timestamp_sec as i64, 0) + .expect("invalid or out-of-range datetime"), + ); self.values.push(value); } self diff --git a/extensions/topsql/src/upstream/tidb/mock_upstream.rs b/src/sources/topsql/upstream/tidb/mock_upstream.rs similarity index 90% rename from extensions/topsql/src/upstream/tidb/mock_upstream.rs rename to src/sources/topsql/upstream/tidb/mock_upstream.rs index ebf062a..50992d3 100644 --- a/extensions/topsql/src/upstream/tidb/mock_upstream.rs +++ b/src/sources/topsql/upstream/tidb/mock_upstream.rs @@ -8,9 +8,9 @@ use futures_util::stream; use tonic::transport::ServerTlsConfig; use tonic::{Request, Response, Status}; -use crate::upstream::tidb::proto::top_sql_pub_sub_server::{TopSqlPubSub, TopSqlPubSubServer}; -use crate::upstream::tidb::proto::top_sql_sub_response::RespOneof; -use crate::upstream::tidb::proto::{ +use crate::sources::topsql::upstream::tidb::proto::top_sql_pub_sub_server::{TopSqlPubSub, TopSqlPubSubServer}; +use crate::sources::topsql::upstream::tidb::proto::top_sql_sub_response::RespOneof; +use crate::sources::topsql::upstream::tidb::proto::{ PlanMeta, SqlMeta, TopSqlRecord, TopSqlRecordItem, TopSqlSubRequest, TopSqlSubResponse, }; diff --git a/extensions/topsql/src/upstream/tidb/mod.rs b/src/sources/topsql/upstream/tidb/mod.rs similarity index 67% rename from extensions/topsql/src/upstream/tidb/mod.rs rename to src/sources/topsql/upstream/tidb/mod.rs index e6de3a9..cd3d27b 100644 --- a/extensions/topsql/src/upstream/tidb/mod.rs +++ b/src/sources/topsql/upstream/tidb/mod.rs @@ -4,11 +4,14 @@ pub mod proto; #[cfg(test)] pub mod mock_upstream; +use std::time::Duration; + +use tonic::codec::CompressionEncoding; use tonic::transport::{Channel, Endpoint}; use tonic::{Status, Streaming}; -use crate::shutdown::ShutdownSubscriber; -use crate::upstream::{tls_proxy, Upstream}; +use crate::sources::topsql::shutdown::ShutdownSubscriber; +use crate::sources::topsql::upstream::{tls_proxy, Upstream}; pub struct TiDBUpstream; @@ -25,17 +28,23 @@ impl Upstream for TiDBUpstream { ) -> vector::Result { let endpoint = if tls_config.is_none() { Channel::from_shared(address.clone())? + .http2_keep_alive_interval(Duration::from_secs(300)) + .keep_alive_timeout(Duration::from_secs(10)) + .keep_alive_while_idle(true) } else { // do proxy let port = tls_proxy::tls_proxy(tls_config, &address, shutdown_subscriber).await?; Channel::from_shared(format!("http://127.0.0.1:{}", port))? + .http2_keep_alive_interval(Duration::from_secs(300)) + .keep_alive_timeout(Duration::from_secs(10)) + .keep_alive_while_idle(true) }; Ok(endpoint) } fn build_client(channel: Channel) -> Self::Client { - Self::Client::new(channel) + Self::Client::new(channel).accept_compressed(CompressionEncoding::Gzip) } async fn build_stream( diff --git a/src/sources/topsql/upstream/tidb/parser.rs b/src/sources/topsql/upstream/tidb/parser.rs new file mode 100644 index 0000000..647f1eb --- /dev/null +++ b/src/sources/topsql/upstream/tidb/parser.rs @@ -0,0 +1,541 @@ +use std::collections::{BTreeMap, BTreeSet, HashMap}; + +use chrono::Utc; +use vector::event::LogEvent; + +use crate::sources::topsql::upstream::consts::{ + INSTANCE_TYPE_TIDB, INSTANCE_TYPE_TIKV, LABEL_ENCODED_NORMALIZED_PLAN, LABEL_IS_INTERNAL_SQL, + LABEL_NAME, LABEL_NORMALIZED_PLAN, LABEL_NORMALIZED_SQL, LABEL_PLAN_DIGEST, LABEL_SQL_DIGEST, + METRIC_NAME_CPU_TIME_MS, METRIC_NAME_PLAN_META, METRIC_NAME_SQL_META, + METRIC_NAME_STMT_DURATION_COUNT, METRIC_NAME_STMT_DURATION_SUM_NS, METRIC_NAME_STMT_EXEC_COUNT, +}; +use crate::sources::topsql::upstream::parser::{Buf, UpstreamEventParser}; +use crate::sources::topsql::upstream::tidb::proto::top_sql_sub_response::RespOneof; +use crate::sources::topsql::upstream::tidb::proto::{ + PlanMeta, SqlMeta, TopSqlRecord, TopSqlRecordItem, TopSqlSubResponse, +}; +use crate::sources::topsql::upstream::utils::make_metric_like_log_event; + +pub struct TopSqlSubResponseParser; + +impl UpstreamEventParser for TopSqlSubResponseParser { + type UpstreamEvent = TopSqlSubResponse; + + fn parse(response: Self::UpstreamEvent, instance: String) -> Vec { + match response.resp_oneof { + Some(RespOneof::Record(record)) => Self::parse_tidb_record(record, instance), + Some(RespOneof::SqlMeta(sql_meta)) => Self::parse_tidb_sql_meta(sql_meta), + Some(RespOneof::PlanMeta(plan_meta)) => Self::parse_tidb_plan_meta(plan_meta), + None => vec![], + } + } + + fn keep_top_n(responses: Vec, top_n: usize) -> Vec { + struct PerSecondDigest { + sql_digest: Vec, + plan_digest: Vec, + cpu_time_ms: u32, + stmt_exec_count: u64, + stmt_kv_exec_count: BTreeMap, + stmt_duration_sum_ns: u64, + stmt_duration_count: u64, + } + + let mut new_responses = vec![]; + let mut ts_others = BTreeMap::new(); + let mut ts_digests = BTreeMap::new(); + for response in responses { + if let Some(RespOneof::Record(record)) = response.resp_oneof { + if record.sql_digest.is_empty() { + for item in record.items { + ts_others.insert(item.timestamp_sec, item); + } + } else { + for item in &record.items { + let psd = PerSecondDigest { + sql_digest: record.sql_digest.clone(), + plan_digest: record.plan_digest.clone(), + cpu_time_ms: item.cpu_time_ms, + stmt_exec_count: item.stmt_exec_count, + stmt_kv_exec_count: item.stmt_kv_exec_count.clone(), + stmt_duration_sum_ns: item.stmt_duration_sum_ns, + stmt_duration_count: item.stmt_duration_count, + }; + match ts_digests.get_mut(&item.timestamp_sec) { + None => { + ts_digests.insert(item.timestamp_sec, vec![psd]); + } + Some(v) => { + v.push(psd); + } + } + } + } + } else { + new_responses.push(response); + } + } + + for (ts, v) in &mut ts_digests { + if v.len() <= top_n { + continue; + } + v.sort_by(|psd1, psd2| psd2.cpu_time_ms.cmp(&psd1.cpu_time_ms)); + let evicted = v.split_at(top_n).1; + let mut others = TopSqlRecordItem::default(); + for e in evicted { + others.timestamp_sec = *ts; + others.cpu_time_ms += e.cpu_time_ms; + others.stmt_exec_count = e.stmt_exec_count; + others.stmt_duration_sum_ns = e.stmt_duration_sum_ns; + others.stmt_duration_count = e.stmt_duration_count; + for (k, v) in &e.stmt_kv_exec_count { + match others.stmt_kv_exec_count.get(k) { + None => { + others.stmt_kv_exec_count.insert(k.clone(), *v); + } + Some(existed_v) => { + others.stmt_kv_exec_count.insert(k.clone(), existed_v + v); + } + } + } + } + v.truncate(top_n); + match ts_others.get_mut(&ts) { + None => { + ts_others.insert(*ts, others); + } + Some(existed_others) => { + existed_others.cpu_time_ms += others.cpu_time_ms; + existed_others.stmt_exec_count += others.stmt_exec_count; + existed_others.stmt_duration_sum_ns += others.stmt_duration_sum_ns; + existed_others.stmt_duration_count += others.stmt_duration_count; + for (k, v) in &others.stmt_kv_exec_count { + match existed_others.stmt_kv_exec_count.get(k) { + None => { + existed_others.stmt_kv_exec_count.insert(k.clone(), *v); + } + Some(existed_v) => { + existed_others + .stmt_kv_exec_count + .insert(k.clone(), existed_v + v); + } + } + } + } + } + } + + let mut digest_items = HashMap::new(); + for (ts, v) in ts_digests { + for psd in v { + let k = (psd.sql_digest, psd.plan_digest); + let item = TopSqlRecordItem { + timestamp_sec: ts, + cpu_time_ms: psd.cpu_time_ms, + stmt_exec_count: psd.stmt_exec_count, + stmt_kv_exec_count: psd.stmt_kv_exec_count.clone(), + stmt_duration_sum_ns: psd.stmt_duration_sum_ns, + stmt_duration_count: psd.stmt_duration_count, + }; + match digest_items.get_mut(&k) { + None => { + digest_items.insert(k, vec![item]); + } + Some(items) => { + items.push(item); + } + } + } + } + if !ts_others.is_empty() { + let others_k = (vec![], vec![]); + digest_items.insert(others_k, ts_others.into_values().collect()); + } + + for (digest, items) in digest_items { + new_responses.push(TopSqlSubResponse { + resp_oneof: Some(RespOneof::Record(TopSqlRecord { + sql_digest: digest.0, + plan_digest: digest.1, + items: items, + })), + }) + } + new_responses + } + + // fn keep_top_n(responses: Vec, top_n: usize) -> Vec { + // let mut cpu_time_map = HashMap::new(); + // for response in &responses { + // if let Some(RespOneof::Record(record)) = &response.resp_oneof { + // if record.sql_digest.is_empty() { + // continue; // others + // } + // let cpu_time: u32 = record.items.iter().map(|i| i.cpu_time_ms).sum(); + // let k = (record.sql_digest.clone(), record.plan_digest.clone()); + // let v = cpu_time_map.get(&k).unwrap_or(&0); + // cpu_time_map.insert(k, v + cpu_time); + // } + // } + // let mut cpu_time_vec = cpu_time_map + // .into_iter() + // .collect::, Vec), u32)>>(); + // cpu_time_vec.sort_by(|a, b| b.1.cmp(&a.1)); + // cpu_time_vec.truncate(top_n); + // let mut top_sql_plan = HashSet::new(); + // for v in cpu_time_vec { + // top_sql_plan.insert(v.0); + // } + + // let mut results = vec![]; + // let mut records_others = vec![]; + // for response in responses { + // match response.resp_oneof { + // Some(RespOneof::Record(record)) => { + // if top_sql_plan + // .contains(&(record.sql_digest.clone(), record.plan_digest.clone())) + // { + // results.push(TopSqlSubResponse { + // resp_oneof: Some(RespOneof::Record(record)), + // }); + // } else { + // records_others.push(record); + // } + // } + // _ => results.push(response), + // } + // } + + // let mut others_ts_item = BTreeMap::new(); + // for record in records_others { + // for item in record.items { + // match others_ts_item.get_mut(&item.timestamp_sec) { + // None => { + // others_ts_item.insert(item.timestamp_sec, item); + // } + // Some(i) => { + // i.cpu_time_ms += item.cpu_time_ms; + // i.stmt_exec_count += item.stmt_exec_count; + // i.stmt_duration_sum_ns += item.stmt_duration_sum_ns; + // i.stmt_duration_count += item.stmt_duration_count; + // for (k, v) in item.stmt_kv_exec_count { + // let iv = i.stmt_kv_exec_count.get(&k).unwrap_or(&0); + // i.stmt_kv_exec_count.insert(k, iv + v); + // } + // } + // } + // } + // } + // results.push(TopSqlSubResponse { + // resp_oneof: Some(RespOneof::Record(TopSqlRecord { + // sql_digest: vec![], + // plan_digest: vec![], + // items: others_ts_item.into_values().collect(), + // })), + // }); + + // results + // } + + fn downsampling(responses: &mut Vec, interval_sec: u32) { + if interval_sec <= 1 { + return; + } + let interval_sec = interval_sec as u64; + for response in responses { + if let Some(RespOneof::Record(record)) = &mut response.resp_oneof { + let mut new_items = BTreeMap::new(); + for item in &record.items { + let new_ts = + item.timestamp_sec + (interval_sec - item.timestamp_sec % interval_sec); + match new_items.get(&new_ts) { + None => { + let mut new_item = item.clone(); + new_item.timestamp_sec = new_ts; + new_items.insert(new_ts, new_item); + } + Some(existed_item) => { + let mut new_item = existed_item.clone(); + new_item.cpu_time_ms += item.cpu_time_ms; + new_item.stmt_exec_count += item.stmt_exec_count; + new_item.stmt_duration_count += item.stmt_duration_count; + new_item.stmt_duration_sum_ns += item.stmt_duration_sum_ns; + for (k, v) in &item.stmt_kv_exec_count { + match new_item.stmt_kv_exec_count.get(k) { + None => { + new_item.stmt_kv_exec_count.insert(k.clone(), *v); + } + Some(existed_v) => { + new_item + .stmt_kv_exec_count + .insert(k.clone(), v + existed_v); + } + } + } + new_items.insert(new_ts, new_item); + } + } + } + record.items = new_items.into_values().collect(); + } + } + } +} + +impl TopSqlSubResponseParser { + fn parse_tidb_record(record: TopSqlRecord, instance: String) -> Vec { + let mut logs = vec![]; + + let mut buf = Buf::default(); + buf.instance(instance) + .instance_type(INSTANCE_TYPE_TIDB) + .sql_digest(hex::encode_upper(record.sql_digest)) + .plan_digest(hex::encode_upper(record.plan_digest)); + + macro_rules! append { + ($( ($label_name:expr, $item_name:tt), )* ) => { + $( + buf.label_name($label_name) + .points(record.items.iter().filter_map(|item| { + if item.$item_name > 0 { + Some((item.timestamp_sec, item.$item_name as f64)) + } else { + None + } + })); + if let Some(event) = buf.build_event() { + logs.push(event); + } + )* + }; + } + append!( + // cpu_time_ms + (METRIC_NAME_CPU_TIME_MS, cpu_time_ms), + // stmt_exec_count + (METRIC_NAME_STMT_EXEC_COUNT, stmt_exec_count), + // stmt_duration_sum_ns + (METRIC_NAME_STMT_DURATION_SUM_NS, stmt_duration_sum_ns), + // stmt_duration_count + (METRIC_NAME_STMT_DURATION_COUNT, stmt_duration_count), + ); + + // stmt_kv_exec_count + buf.label_name(METRIC_NAME_STMT_EXEC_COUNT) + .instance_type(INSTANCE_TYPE_TIKV); + + let tikv_instances = record + .items + .iter() + .flat_map(|item| item.stmt_kv_exec_count.keys()) + .collect::>(); + for tikv_instance in tikv_instances { + buf.instance(tikv_instance) + .points(record.items.iter().filter_map(|item| { + let count = item + .stmt_kv_exec_count + .get(tikv_instance) + .copied() + .unwrap_or_default(); + + if count > 0 { + Some((item.timestamp_sec, count as f64)) + } else { + None + } + })); + if let Some(event) = buf.build_event() { + logs.push(event); + } + } + + logs + } + + fn parse_tidb_sql_meta(sql_meta: SqlMeta) -> Vec { + vec![make_metric_like_log_event( + &[ + (LABEL_NAME, METRIC_NAME_SQL_META.to_owned()), + (LABEL_SQL_DIGEST, hex::encode_upper(sql_meta.sql_digest)), + (LABEL_NORMALIZED_SQL, sql_meta.normalized_sql), + (LABEL_IS_INTERNAL_SQL, sql_meta.is_internal_sql.to_string()), + ], + &[Utc::now()], + &[1.0], + )] + } + + fn parse_tidb_plan_meta(plan_meta: PlanMeta) -> Vec { + vec![make_metric_like_log_event( + &[ + (LABEL_NAME, METRIC_NAME_PLAN_META.to_owned()), + (LABEL_PLAN_DIGEST, hex::encode_upper(plan_meta.plan_digest)), + (LABEL_NORMALIZED_PLAN, plan_meta.normalized_plan), + ( + LABEL_ENCODED_NORMALIZED_PLAN, + plan_meta.encoded_normalized_plan, + ), + ], + &[Utc::now()], + &[1.0], + )] + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::sources::topsql::upstream::tidb::proto::TopSqlRecordItem; + + const MOCK_RECORDS: &'static str = include_str!("testdata/mock-records.json"); + + #[derive(serde::Deserialize, serde::Serialize)] + struct Record { + sql: String, + plan: String, + items: Vec, + } + + #[derive(serde::Deserialize, serde::Serialize)] + struct Item { + timestamp_sec: u64, + cpu_time_ms: u32, + stmt_exec_count: u64, + stmt_kv_exec_count: BTreeMap, + stmt_duration_sum_ns: u64, + stmt_duration_count: u64, + } + + fn load_mock_responses() -> Vec { + serde_json::from_str::>(MOCK_RECORDS) + .unwrap() + .into_iter() + .map(|r| TopSqlSubResponse { + resp_oneof: Some(RespOneof::Record(TopSqlRecord { + sql_digest: hex::decode(r.sql).unwrap(), + plan_digest: hex::decode(r.plan).unwrap(), + items: r + .items + .into_iter() + .map(|i| TopSqlRecordItem { + timestamp_sec: i.timestamp_sec, + cpu_time_ms: i.cpu_time_ms, + stmt_exec_count: i.stmt_exec_count, + stmt_kv_exec_count: i.stmt_kv_exec_count, + stmt_duration_sum_ns: i.stmt_duration_sum_ns, + stmt_duration_count: i.stmt_duration_count, + }) + .collect(), + })), + }) + .collect() + } + + #[test] + fn test_keep_top_n() { + let responses = load_mock_responses(); + let top_n = TopSqlSubResponseParser::keep_top_n(responses, 10); + assert_eq!(top_n.len(), 11); + let mut top_cpu_time = vec![]; + let mut others_cpu_time = 0; + for response in top_n { + if let Some(RespOneof::Record(record)) = response.resp_oneof { + let cpu_time: u32 = record.items.iter().map(|i| i.cpu_time_ms).sum(); + if record.sql_digest.is_empty() { + others_cpu_time = cpu_time; + } else { + top_cpu_time.push(cpu_time); + } + } + } + top_cpu_time.sort_by(|a, b| b.cmp(a)); + assert_eq!(top_cpu_time, [90, 60, 50, 50, 50, 40, 40, 40, 40, 40]); + assert_eq!(others_cpu_time, 30590); + } + + #[test] + fn test_downsampling() { + let mut responses = load_mock_responses(); + let mut items = vec![]; + for response in &responses { + if let Some(RespOneof::Record(record)) = &response.resp_oneof { + if record.sql_digest.is_empty() { + items = record.items.clone(); + } + } + } + let mut timestamps: Vec = items.clone().into_iter().map(|i| i.timestamp_sec).collect(); + timestamps.sort(); + assert_eq!( + timestamps, // 21:54:51 ~ 21:55:24 + [ + 1709646891, 1709646892, 1709646893, 1709646894, 1709646895, 1709646896, 1709646897, + 1709646898, 1709646899, 1709646900, 1709646901, 1709646902, 1709646903, 1709646904, + 1709646905, 1709646907, 1709646908, 1709646909, 1709646910, 1709646911, 1709646912, + 1709646913, 1709646914, 1709646915, 1709646916, 1709646917, 1709646918, 1709646919, + 1709646920, 1709646921, 1709646922, 1709646923, 1709646924 + ] + ); + let mut sum_old = TopSqlRecordItem::default(); + for item in items { + sum_old.cpu_time_ms += item.cpu_time_ms; + sum_old.stmt_exec_count += item.stmt_exec_count; + sum_old.stmt_duration_sum_ns += item.stmt_duration_sum_ns; + sum_old.stmt_duration_count += item.stmt_duration_count; + for (k, v) in item.stmt_kv_exec_count { + match sum_old.stmt_kv_exec_count.get(&k) { + None => { + sum_old.stmt_kv_exec_count.insert(k, v); + } + Some(sum_v) => { + sum_old.stmt_kv_exec_count.insert(k, sum_v + v); + } + } + } + } + + TopSqlSubResponseParser::downsampling(&mut responses, 15); + + let mut items = vec![]; + for response in &responses { + if let Some(RespOneof::Record(record)) = &response.resp_oneof { + if record.sql_digest.is_empty() { + items = record.items.clone(); + } + } + } + let timestamps: Vec = items.clone().into_iter().map(|i| i.timestamp_sec).collect(); + assert_eq!( + timestamps, + [ + 1709646900, // 21:55:00 + 1709646915, // 21:55:15 + 1709646930, // 21:55:30 + ] + ); + let mut sum_new = TopSqlRecordItem::default(); + for item in items { + sum_new.cpu_time_ms += item.cpu_time_ms; + sum_new.stmt_exec_count += item.stmt_exec_count; + sum_new.stmt_duration_sum_ns += item.stmt_duration_sum_ns; + sum_new.stmt_duration_count += item.stmt_duration_count; + for (k, v) in item.stmt_kv_exec_count { + match sum_new.stmt_kv_exec_count.get(&k) { + None => { + sum_new.stmt_kv_exec_count.insert(k, v); + } + Some(sum_v) => { + sum_new.stmt_kv_exec_count.insert(k, sum_v + v); + } + } + } + } + + assert_eq!(sum_old.cpu_time_ms, sum_new.cpu_time_ms); + assert_eq!(sum_old.stmt_exec_count, sum_new.stmt_exec_count); + assert_eq!(sum_old.stmt_duration_count, sum_new.stmt_duration_count); + assert_eq!(sum_old.stmt_duration_sum_ns, sum_new.stmt_duration_sum_ns); + assert_eq!(sum_old.stmt_kv_exec_count, sum_new.stmt_kv_exec_count); + } +} diff --git a/extensions/topsql/src/upstream/tidb/proto.rs b/src/sources/topsql/upstream/tidb/proto.rs similarity index 86% rename from extensions/topsql/src/upstream/tidb/proto.rs rename to src/sources/topsql/upstream/tidb/proto.rs index 97dca79..5c5c13e 100644 --- a/extensions/topsql/src/upstream/tidb/proto.rs +++ b/src/sources/topsql/upstream/tidb/proto.rs @@ -1,9 +1,10 @@ #![allow(clippy::clone_on_ref_ptr)] +#![allow(non_snake_case)] // To avoid: Function `ScalarWrapper` should have snake_case name, e.g. `scalar_wrapper` include!(concat!(env!("OUT_DIR"), "/tipb.rs")); use top_sql_sub_response::RespOneof; -use vector_core::ByteSizeOf; +use vector_lib::ByteSizeOf; impl ByteSizeOf for TopSqlSubResponse { fn allocated_bytes(&self) -> usize { diff --git a/src/sources/topsql/upstream/tidb/testdata/mock-records.json b/src/sources/topsql/upstream/tidb/testdata/mock-records.json new file mode 100644 index 0000000..0da9019 --- /dev/null +++ b/src/sources/topsql/upstream/tidb/testdata/mock-records.json @@ -0,0 +1,48634 @@ +[ + { + "sql": "48a3e88d20e6d01c78ed407aed4418df260a7bc1525e7302ff5fa746d1e3cd4d", + "plan": "cc2923c47afda695a7c3d17492cfb68674f288821731bcd6ea4fa888275c832d", + "items": [ + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 30, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38796295, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40310119, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38420995, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35186040, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 40935086, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 34173870, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40747329, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 42187043, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42135916, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 36465214, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37776337, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 40729413, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44545744, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38330380, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 6785706, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36372962, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36979375, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38640326, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41337543, + "stmt_duration_count": 125 + } + ] + }, + { + "sql": "93425420390458354694819cb26750fe10cd7ca0179ac91df8c86968a961ed8a", + "plan": "da129a3c69f1f3d78c87fc5475c01393ad1f9e6c34e15d28a9af97e535e98972", + "items": [ + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40238210, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43662664, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44308123, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 49756414, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44875964, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42979253, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39554087, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 4336250, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41111748, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43668203, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45469289, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 39097213, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42897586, + "stmt_duration_count": 125 + } + ] + }, + { + "sql": "89a16cc0602b925aa04bb5b7f4b0b2623d3200376ded1fcd41487b70a3db6404", + "plan": "18ab00e95bdfa13c6ccd8358b1e7ce2a5049b02efe746fb5286f25087847b556", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40901076, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39959287, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38876209, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41865951, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42017920, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35819999, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41744593, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 49133663, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38103827, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 42056914, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39708580, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37219875, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39259634, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35438581, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44167124, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41366038, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7215873, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39464836, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 44403085, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43166252, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 157, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 157 + }, + "stmt_duration_sum_ns": 46614545, + "stmt_duration_count": 157 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43504761, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38309991, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 33697084, + "stmt_duration_count": 98 + } + ] + }, + { + "sql": "bb87e05adbf0a56660dfb9b9328da6058d0ad4736cc02a63653cc0c211989c2c", + "plan": "6a2330a1d7f10a759a89c0f153d519f9f26b8989f8937b2bfbc62bf6186a0091", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 33328911, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 32731706, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41451874, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37208419, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39873999, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38646167, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 49140706, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37687953, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37351580, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34750456, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40484464, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42939925, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40546252, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 34472709, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42438545, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43725668, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 21, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 21 + }, + "stmt_duration_sum_ns": 12724127, + "stmt_duration_count": 21 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 48600794, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36717916, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40333256, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 37946537, + "stmt_duration_count": 100 + } + ] + }, + { + "sql": "3a5bd96fcbab9c0ce803cd16ce40508913e74d7fcee8776a2cdc54db5c6e01d6", + "plan": "0ce58001f183f475d1bf36a9d1e38b1d08bdf2422aaa71238e56d96774135ce0", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48029377, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42700387, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42370135, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43832048, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 41396081, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43064662, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 87, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 87 + }, + "stmt_duration_sum_ns": 35355673, + "stmt_duration_count": 87 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 48215913, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 47820659, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 49487999, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48014631, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44701457, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 40984712, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 45248416, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48838664, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46728656, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 44332459, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 5280167, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 39120748, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 48665625, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46699131, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46875495, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46971914, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 43896584, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42740883, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "1d8cedd0eebd2cab950714532325a1d70150a746f076cceff634af02008bdf1b", + "plan": "bc47a9c632c8d2e49057a66eee00291b844ffa9751d0e78caa32b252399b969e", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42996909, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41655957, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44083873, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41746920, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 51236245, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42752085, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45007544, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46982988, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 39449962, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 44053622, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46170877, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 48695544, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44127705, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 44188662, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 37266997, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44592204, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5021085, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48514588, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49773211, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 48633335, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41366835, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 49729119, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 50280208, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37844497, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "4b96d5d3b0100db751a03f5341c7ba207163251d820d8115aa60e75693b5e939", + "plan": "cef718bcf4137307a8167e595941a92a260deb7dd9e1c9735bfba3ce3542de0f", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1280958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1578584, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1554292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1220458, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1801167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1185583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1176708, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1035417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1436875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 31686500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1000375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1547250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1239458, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1367500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2011959, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1615417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1053791, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1409708, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1395125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1767916, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1704375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1308583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1567209, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1175875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1974750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1773958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1348500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1133792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1655750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1606375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2098125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1533167, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "656196fca100eaf0f09f70d19397cf42c3b7d68e2f8ed4ee6688c6bd4a570180", + "plan": "1515f90c71c60d10df8078ea076e5c6c07edfade9e2c522275ab3db2e4a8ccd9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 42349539, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 49675293, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47142331, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 46168252, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43724500, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 44253034, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 45189001, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 43855374, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48674869, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46598464, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41786659, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 43343624, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44702961, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45438169, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 53991376, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 45325665, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 48735413, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 52737535, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 12307959, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 43615706, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 48255128, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 46840500, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 51809166, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 47280998, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 47760495, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "709ea9859361fbca6a2502c50bf779c963580a17b06711ddebc8ecc0a3022a7a", + "plan": "4c9de76a66a4b16ea46b59865115771309276693ffa1dd857e938e8d8254fd67", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43134258, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42972799, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35315039, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 48812170, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43040954, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38638162, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45751660, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41634082, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42462871, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 45238088, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41901418, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 44048999, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44770879, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38891630, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 5321791, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 43438128, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 38149869, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42078287, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37402790, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 42563624, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43951135, + "stmt_duration_count": 131 + } + ] + }, + { + "sql": "7fcae873bfdf1f51c8d3cdc410440623487de20c5425393ffd6b57f77e61e1cc", + "plan": "3923cdad0c9e8babca7f0d6b7dbbf7e8a304d52c079e7563748d57385c34a50e", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35989541, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44087421, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 46721413, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39510713, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41176829, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43928914, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41104996, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42459041, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39451624, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43048537, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42249842, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 47334076, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43827459, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37819131, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38857460, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44438881, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 6314249, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34297289, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41509585, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44950839, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 47681792, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38567378, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44555961, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35682543, + "stmt_duration_count": 110 + } + ] + }, + { + "sql": "9f2ba598d5646c6ea1539fbeee823ebae8066c9f2199354445c33ea66b183224", + "plan": "3b96a69a40fe2a96bdfda412cec85bc49de0c0cfb311a5a4fc3ff38a336adf07", + "items": [ + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 40, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 47070919, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 50, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45428832, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47146413, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47086037, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 49090705, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 37307410, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41379588, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45837046, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 43207753, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39467251, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45624868, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 40483749, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39365917, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42627914, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36100128, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43953703, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 35741962, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 5086711, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41743792, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45067499, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41268342, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43854541, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38707457, + "stmt_duration_count": 110 + } + ] + }, + { + "sql": "9505cacb7c710ed17125fcc6cb3669e8ddca6c8cd8af6a31f6b3cd64604c3098", + "plan": "", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 20000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 43792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 16958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 18792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 19792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 17333, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 18250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 16084, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 16292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 20125, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "c8e2d3a6a70c207ed03b1e953145be28188364d78c10f497f22b53d771568ba0", + "plan": "f0ae51a9edd5486e3cb68adcdb088125051896830cf688a38d8e3f04e859555d", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 54104915, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 41287335, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47634085, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 55082371, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 50883337, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 47628582, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 50759709, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 47419831, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 46618663, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 45959795, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 54305331, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 50963210, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5977792, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 56504367, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 53352335, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 59517713, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 50388294, + "stmt_duration_count": 122 + } + ] + }, + { + "sql": "c3142537b2d5de87beba93862ab9a6d04821638a4eb7469840042430d1ede929", + "plan": "49648570b59583fa8e7dbb3cc6ff345d8240ba9c049ef2207bac6452bb521d96", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37163291, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37299836, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38344546, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46933375, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37129967, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41524789, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41809456, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 36107545, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40624911, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44736417, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43479955, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6174749, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37076288, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 85, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 85 + }, + "stmt_duration_sum_ns": 38042416, + "stmt_duration_count": 85 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 37024829, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38383754, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36659462, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34549247, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 37513709, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35556207, + "stmt_duration_count": 110 + } + ] + }, + { + "sql": "765a07dc6067f6d0e37f376074c6af24f96bbd82ded3e0220e1cf856aada8ff4", + "plan": "830b8b042eeb7fa15f4fcb98adfd0d2297bd97564479c3e379127dbe1032d155", + "items": [ + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 20, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37860662, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38214335, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38547710, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 35978169, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36809663, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 33995205, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36345041, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44370048, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42185453, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37992874, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42623582, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 154, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 154 + }, + "stmt_duration_sum_ns": 49241665, + "stmt_duration_count": 154 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41457240, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43843173, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 46777705, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34619376, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37546827, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38947622, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36675377, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5537500, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41748914, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39839417, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34499206, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46055216, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40927289, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "e25b5ec8c7b4753cd242ec2f606028b899b182651fb331c9d2d1dd27038ec2f8", + "plan": "de4dbd02d8be8bd87f34542285053006546f9bd8267bca220fd349d50cd8969b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40308666, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43242584, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36130711, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46764621, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39652205, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 35898496, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47324414, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35353419, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41313958, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49006668, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38668041, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35062580, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37246171, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38873246, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6920166, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39487413, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37294000, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42867581, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35303250, + "stmt_duration_count": 110 + } + ] + }, + { + "sql": "6f7c690c09e7043bee9323cba43ef49a6ba873fe1ea10e183131394a4d6f1a5d", + "plan": "6c52f64a18572bc69282b5f34d432090faca2fbdba296ae29a6a4ca1e0dd1d5f", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43933118, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46638919, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40890535, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 46892372, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 39505581, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45157828, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 49211625, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43671246, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45833881, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44567405, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41085753, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43888163, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46208249, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44664747, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43928619, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41784334, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40060999, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 49805333, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 8389041, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46576295, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 48097508, + "stmt_duration_count": 137 + } + ] + }, + { + "sql": "e88761482f0b1a8a3259f9f9d6aec047d05526145bc9af112b8c08a744a44251", + "plan": "231e8823c492e3954c4e06953dea70bfb4eec02f5964fb73a35ac2340e19960a", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 36588620, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48385048, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 49263047, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43770502, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39460619, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41313460, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40870375, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 44034795, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 35782459, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39855176, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 47230576, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 48035920, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 52394912, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 36040710, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 48606903, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44828044, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42204836, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 8025544, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42504127, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 36677835, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 39763004, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41557251, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47739001, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46173334, + "stmt_duration_count": 121 + } + ] + }, + { + "sql": "1d80eba0d03427a0667fa7c789beb3040557de5b6440f81748b3a94b9fb66a07", + "plan": "3b2b333d576c8db8cfb1a273277f511bd1392e0463f77bfc4382fa234f977043", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 38382050, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34781503, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 47890845, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 35178455, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36514042, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 31372123, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37443251, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 36075838, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47832748, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40553049, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 45914378, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47084579, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 45216662, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37953588, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37469585, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41805293, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42847085, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 38682498, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42770613, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38575465, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 4778834, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42809500, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40358494, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39499533, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36045125, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 45606986, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39471287, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37818372, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "1a96197a635ab3d1c0fc027ce178d8aa751e4bd033c39db6163d3ba75b49fe3f", + "plan": "03fa0f18132c15290435ccd6930c03fe7257c7017164897b1e5acdd3c92e1828", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1036250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1420708, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1087167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1159958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2101250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1266125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1404916, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1580417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1380084, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1072750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1298375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1252541, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1346292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1069667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1077167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1310292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1276666, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1209583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1607417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 934333, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 937917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1211416, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1074208, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1264417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2046083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1047625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 839458, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1252959, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1024792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1601125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1282791, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1386917, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "59e25494c61c849bc2ee7fc4dd79ad19acc9d71010c5078de27a0acce3a6da4a", + "plan": "356c415cb75a6c3f0dae8058ec27184eb739ff9302db631e616c21f73223f544", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 44296624, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 46590792, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42958839, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45558585, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43156254, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 45759085, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 45229541, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 48611037, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43996877, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 55019912, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45765586, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 51910074, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 45541246, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48770669, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 50087546, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 47100247, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45764376, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 47151835, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 50508376, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 43655458, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "bb9cc401b279bd2715996fbd8d96d549c9da2442b91b35c182a9d4b7283175f3", + "plan": "8ef567563fbe486f600b6f41b65b18c616bfbfa028b4ede52e4c279ffdd30189", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 44793544, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 49708413, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 51816417, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 53205790, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 51096710, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 49044504, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 42746121, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 42304539, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 57601949, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 51881247, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 54763539, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 53229663, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 49628087, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 5, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 5 + }, + "stmt_duration_sum_ns": 2591250, + "stmt_duration_count": 5 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 50176830, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 52217001, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 41215540, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 52692796, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48501246, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 39653837, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 44331040, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "bcdb0a279927a7cd9d8e07f0c1454168f786635f7d641eb9abf3d130d708dc53", + "plan": "855766f5d709ca90bc52cfd88e7f7aa08060ec8aa7a7f967e7f3bc3699918fc9", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 46014838, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 50159581, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43466785, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 38333662, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 47221921, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51552291, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47328499, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43843501, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 47556743, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 51230587, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45071746, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 52342538, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 52506254, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 50701550, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 8969833, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 49535912, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 46120247, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47014663, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47842922, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41873036, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 46039458, + "stmt_duration_count": 112 + } + ] + }, + { + "sql": "896117a03fcee259bf656278f156459a43357c826d952fec0d4d0f4fcf3050bf", + "plan": "76fd3241c2fe52e949fd37693eeb09d9813286abc05f0f8972786c3ea96a07c5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39237623, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38786670, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40523461, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 47466460, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38045873, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 31458371, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 35824712, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 49748129, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41081877, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41402584, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46490583, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45689840, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 46697334, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35953379, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45201620, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35531086, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 9439377, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 34992666, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 36037708, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45511578, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 39965747, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45041499, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 40963288, + "stmt_duration_count": 104 + } + ] + }, + { + "sql": "8878fd3faaa52984dce62f79037f68b05c925e2b96924ee4426d063ca96034fb", + "plan": "3cf099fc7c68411b95a6e04937c0dc737fa60d2fbb7e2e04784e35d52d1c434a", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43529583, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44905170, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39079207, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35497500, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41452996, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40077793, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 52578254, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39640743, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41298162, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37348077, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37285162, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41474253, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39719332, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39177211, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42773671, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38050957, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 6524668, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 34992334, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45752303, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39342539, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41698586, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37982086, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "9fbd879acb854423338802f0964b3e41d4dd6cb6a6afbd5db26c47466cb2d9f1", + "plan": "466e23fa8937ff33f1cdcb9105ba24b53afc0c7a722ece70ee3d99f464365da7", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 47804085, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42368580, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39582505, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39670246, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42842878, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39893541, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38522007, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38219335, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 40069377, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44673415, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41417965, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36589707, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36009377, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38888000, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 39217175, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39624877, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41841623, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43944621, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43822742, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42234165, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 7, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7 + }, + "stmt_duration_sum_ns": 3960207, + "stmt_duration_count": 7 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41749992, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 42579664, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39884923, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "b95a604794f9eff17a1a6a37d754324be11ede348a0d1e53da2bc3c32d6a4142", + "plan": "9449388a4efbc35c8eca1639aec164392df687869239f9ad16ea37887d98c42a", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 953958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1080083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 824292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1030375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 971958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 852208, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1336292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1006250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1119833, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1150959, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "300bec3bbc438b07337851529f7d6b6524daa3ba5604ac6c52d1cd19c65cd52b", + "plan": "a8ba7ee64c84c0407f98b548e934bb707a377ce3719b4d1b735197be1845a1d6", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42937579, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45105673, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41298506, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39989086, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39407293, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36953582, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 33570375, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45719494, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35887086, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38550462, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41811709, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35264008, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36475785, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 38548379, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45146004, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 5884416, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35151539, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41752670, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43729125, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35462834, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44244710, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 43945998, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "f46db4a2ea76f8e4bbd148cf558c24a438dff73bd5fc432b2912e310a33b1355", + "plan": "bee3e1d77ba6d1b57f4823afdff484016911b05d335ef9101b76c10c949f8aad", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 34759961, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47038584, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37826872, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35813585, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37853051, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 46084712, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44008249, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42147296, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39037502, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 38767377, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41187050, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 50521412, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37808459, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34485629, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40079751, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8131416, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42062541, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40278589, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38849211, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43470287, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 91, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 91 + }, + "stmt_duration_sum_ns": 31806836, + "stmt_duration_count": 91 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44340412, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "7555e91e2a56689bdabce3cfba1992a0ca0050ed1b83e71ca16cb6bc77174353", + "plan": "bed02f3b9399bf303d1dff98251a0b5a8253f0ac0370856d6a26ad54358fc60c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49279503, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41234209, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43427626, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45979584, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39552042, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45169497, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45685164, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44924656, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 33682459, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42416116, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45190170, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41374376, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39140498, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47092335, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6230001, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44025331, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46220746, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40789708, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46278164, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36989373, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 39808415, + "stmt_duration_count": 99 + } + ] + }, + { + "sql": "2f7e0d3ecfb63df35a400c5f384b15d9900990e7d5a2971399c241c4ed941ddc", + "plan": "28d9f090591e0c4d7030d6a7c1af770f2dd616642989c5f5db42b6364615d295", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42908042, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36643164, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39836165, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40912628, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39673208, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41380843, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43276797, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43805710, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37255957, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40355796, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45960957, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41102169, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36699796, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36771294, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 48497127, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35146458, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44067171, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35316128, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7459999, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43955510, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42906839, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40153743, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37014965, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 47171998, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39689127, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "2dfeb316e406049e7d14abdd25963761ef14021a4fa0e41a517053c4c545453a", + "plan": "eff6c6e9f72e6f1e7302fab326b1c6771b43ef1af9e1aa8d73b33a71c0891d78", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 47247545, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 44696754, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45442282, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 45569338, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 45768086, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 64992583, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 51097874, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 50696292, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43003046, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 53743590, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 47217960, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 54248372, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 47969468, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 47441291, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 55365790, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6191000, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 48929957, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 40747165, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 49731913, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "6e0f197042326339ec994a6af98cbe9207d8442f9315b9c0c66c8a94114d61f1", + "plan": "97d2d8871194e616c65d4288b01547b290fe186ab686dcc763b9a7d44df91fa4", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36114699, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37816502, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41403876, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 46557794, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41153999, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39803457, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39855671, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45801003, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 160, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 160 + }, + "stmt_duration_sum_ns": 51730129, + "stmt_duration_count": 160 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41222167, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 47804422, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38024121, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36612047, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33726211, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36473750, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42110793, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 3785833, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44184378, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42010624, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43594337, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40206744, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41647706, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45837170, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44777585, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40264253, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "e0aa84b2cc97009ba78bf7c37813865fd62a96ba9a4c817e23db3d84b44eb8e3", + "plan": "ea14251c3183d75a2d7d32173eed8498a7e9152aef2ba8c9b2f842a072219831", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47935508, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42629166, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40445919, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39600503, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37265133, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44380955, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46879791, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41359702, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45235662, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40265957, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39509170, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47779126, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43657085, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 4930291, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43176546, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43377418, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44022626, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37431996, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 50065751, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46028459, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44990667, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "5405566a990a8ac011873a901341cabc3234044798656310da35c68ff1896241", + "plan": "64d181eef0a1b304fbd0d64b9805ca91112c40fdddb08e1b3c49b3a7dfbc995c", + "items": [ + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40107751, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42861792, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40420413, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 40618754, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37119371, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45408198, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39275748, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34431213, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34297500, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44732905, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41101214, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8681704, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 154, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 154 + }, + "stmt_duration_sum_ns": 48817044, + "stmt_duration_count": 154 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39600465, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41484297, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40513455, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34688123, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 43601166, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43497999, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "18f09e45a25c0666ff0e6bf4a9014b4a3db949872c9205add0a488e978b4c60a", + "plan": "903703f213fe900ab4ec70d41ab7012f5fd67497904a86821bcb4483d6a57137", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40028918, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 50653372, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41719796, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 51819711, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44272667, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49699329, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 47855620, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43780129, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41452670, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 35508081, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 49535461, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 41030327, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40132955, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47116330, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42031538, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42252461, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46697416, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 19, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 19 + }, + "stmt_duration_sum_ns": 9420708, + "stmt_duration_count": 19 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45304456, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 48655295, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42024341, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44389748, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42831077, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40368378, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "06509fcf2c3f09b9e8c16a9b4f96c0a4baf47aea5cc4f5d79e274aa248892afc", + "plan": "ab658d22b3fd55cf4f81c49e35bd05036cd6aaeb29a8008d362fea287a4e0226", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41714996, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 32658166, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38723746, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36384202, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40550623, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 156, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 156 + }, + "stmt_duration_sum_ns": 50605045, + "stmt_duration_count": 156 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39039879, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37201790, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41977958, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38690623, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36904825, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37189289, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41951707, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 21, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 21 + }, + "stmt_duration_sum_ns": 11153956, + "stmt_duration_count": 22 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 38808501, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40723535, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43621793, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40726004, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32490123, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 42168084, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43893668, + "stmt_duration_count": 136 + } + ] + }, + { + "sql": "adfe198cd895835f47815cf154167cdde052a7d448148d8b74c5998627918664", + "plan": "0645580aaa0317633b2d0952e5960323786870cc4857ffc2309e02039e70ee84", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38239829, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38851294, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37322418, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 46401213, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38413298, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40027246, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 37368592, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38629715, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39021831, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42453008, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37763545, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 33591420, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41287874, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40333754, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43159457, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4542374, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39402951, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 90, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 90 + }, + "stmt_duration_sum_ns": 30401839, + "stmt_duration_count": 90 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39790027, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38559213, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40296297, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "03198eb2fd2f834ce202952f51c65d19cb94b3cee15c7806181b3b0d0f7f9e62", + "plan": "c2a0e2d24312057c1b302c9eb6519b198d30560fe175d404d526e994776fb37b", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41105952, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 48575375, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41977166, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36679002, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41252046, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 35871459, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41770009, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 48042916, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44340958, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39795006, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40142136, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46009838, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 48192081, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41275337, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34795334, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 40875626, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38638166, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 8100753, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36421541, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37238212, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36197711, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43820873, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 39876083, + "stmt_duration_count": 108 + } + ] + }, + { + "sql": "960c1c959085730cdbdc33265cb10f10f6c0c0207f3a544ee85ae89082333abf", + "plan": "e2071812875179d95d518c9e08376bda4d1f656d94f76696fe28c5b0a72b66b7", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 46977704, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40780626, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 39588875, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37436041, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34562953, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39280202, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43567282, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41956373, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43521880, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40990547, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 51811041, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36420584, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 44344912, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42394247, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45007748, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38347084, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 46738745, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38732788, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 6923247, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39165668, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39556003, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38057087, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 46900661, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42354422, + "stmt_duration_count": 125 + } + ] + }, + { + "sql": "045d5a60d6d9160f7dac77cd31e0056592a1a708fb1d7614bb8daa53cf2d88d7", + "plan": "f096bbbdb4ffcea0ff6801eb65b38c588af03a48457df6075ae8176a9585fb14", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38438374, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39632917, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46026458, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 47299175, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37347995, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40643333, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 32839883, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 49327249, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41853205, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46452867, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38795710, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37576164, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41195412, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37890084, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 25, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 25 + }, + "stmt_duration_sum_ns": 10897997, + "stmt_duration_count": 25 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34626294, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38480705, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 46865994, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43472709, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39121377, + "stmt_duration_count": 112 + } + ] + }, + { + "sql": "45f7b253866c3a4277820737c2c3e744de469252738a4166cc79f1fca60dc938", + "plan": "ec6bd329509310c8989daf22493956a1707742205129089a9a96934cb52b00f9", + "items": [ + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39485753, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41865914, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46748165, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 33428703, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37362791, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41247837, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 33865951, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36348170, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 48070420, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7072878, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38157130, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 50261541, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39900208, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 31994087, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 34111625, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44120082, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34880667, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 36330955, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43673878, + "stmt_duration_count": 135 + } + ] + }, + { + "sql": "626db098522f80b2b0ae10fc4d26cf112177504f40bebe1227b635c7a4b1aa01", + "plan": "ed888f0d3ce1c26d0b409ec84e2e9bd2bc7cd515d08c7505b6ad8c98c491937c", + "items": [ + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 30, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46550209, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43667916, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45942289, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42644782, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 50012412, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44229957, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48163463, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40381294, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 50755294, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41375241, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40842090, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46239668, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 49014708, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 50092422, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38475153, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 53269500, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7975126, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46887706, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44019665, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 49175045, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 49200500, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 40504917, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43306294, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "492ef490082eb454ccb9f0826c1dd97e3f897aedc1b4a605a5fc66c638ef7c67", + "plan": "fe2fbbd4ea4a5aa61c1d35a52d1b565339a2c6e3098600f7847d3730d2374951", + "items": [ + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 40, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42288665, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41399497, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39652954, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42488502, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37399370, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 46889585, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39319205, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42199917, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 35124044, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41844003, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39469865, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36955536, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37715916, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38628170, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 46181876, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41167209, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43608455, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35289498, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 8283251, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41051585, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40231037, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 36609292, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43294376, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38242663, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40013921, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42215457, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39060004, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "1d7bd9568e45291e7fc526c9e096e1de37fc577da91c09298ee88eafd60e7199", + "plan": "ff775058d604fd93958d3cb7874c98b178cf4a419eb434dae0d22cfed2dce84a", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 34830082, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41127791, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 40815959, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40165667, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41342962, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 34085460, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 46207877, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39666329, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41404671, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40759169, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39459701, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36966746, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39534043, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41206172, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43579507, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40940001, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 7923874, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41827214, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44197452, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40705382, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40015952, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39850040, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "6d595ed5fd6f383704ee5a01d59caa136c9fb1b46cdbb65c488e4e08cd33355b", + "plan": "3c22ac473b74b1cbfc9160f76c9df574dadfd6dc3e59bd7fd231d96e7d260efe", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 58811622, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 48379291, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 48666579, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 50523626, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 54265999, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 64426242, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 50592615, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 52090215, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 51392541, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 54481382, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45499997, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48967376, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 50877710, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 40894914, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51776086, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49952622, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 6812624, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 66141169, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 56929661, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51494292, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 53070124, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 50665835, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 49808296, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 40987455, + "stmt_duration_count": 102 + } + ] + }, + { + "sql": "f572fec8bef34ca34f0646b391d143f72d8f404748a288faa2ce92dbc22e3797", + "plan": "bf5b301434e84fca7697b58fa985b83be60bbff328cfe95ab4f7fd511b23b257", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 50, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39169378, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42787122, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38626083, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34931292, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 44511497, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36210841, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43890668, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45852460, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45005177, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 44818129, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 47036339, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 49077332, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39571660, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46617241, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 8775709, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 43120576, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 45358916, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37752373, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35433589, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 34233965, + "stmt_duration_count": 93 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44846959, + "stmt_duration_count": 133 + } + ] + }, + { + "sql": "b20e82a07b110cec03c9563e34e322a991895b47a4eba540174d69c8b83867da", + "plan": "f0ba1eb4db0e76a485c05d36d33d13005640b61b5d3a187029ab88cc653783bc", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 30, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41740715, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 36616800, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 37811538, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 49296155, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38516337, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39668001, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 56179752, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40502585, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47027791, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 36541711, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 47539496, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46133747, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48091626, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44291630, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 47187382, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46262412, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39114246, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47557508, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5605540, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44672751, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42022170, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 48822584, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46989875, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 36971717, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44428453, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "f30c2e408d1d8180bf625cec773e68e15366b1e0eaa857a734eee77fcf619779", + "plan": "406b5c914fb39db56bc2c964846341ef52499bb3927eec551739a14300bff76c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 49814211, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46439581, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40383549, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42054372, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41954167, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 45230832, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48107798, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 45027948, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37999121, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38432625, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40881046, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42037251, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38333592, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 48877417, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 5001251, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43803540, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38821418, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 33013711, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37631377, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46661707, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "4a6446d047687090fa4ba6465cc5c70269ddfc5ea8f95d594048b72155746a55", + "plan": "c1ce71e1210aaabae57ea2800c2e231a2b3c3e141e88c6e405f3f21a631bd419", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46778706, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36805785, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40614580, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 30658581, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 35371250, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 50258166, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 34457999, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37154579, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 35465374, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37642208, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42719081, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44106998, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45035121, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 3564335, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 36037796, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38822954, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42284038, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35068126, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41399704, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 49609498, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "1c209ea24ca9b3c0ee21dd4f5ac777374ded2b7a706892bc02b624989d8982d5", + "plan": "e71defa352425b465defc40a5abd631a8baa701d05fded5027238c4383cf44c1", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38186379, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38041586, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39358254, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43903874, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40335004, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 32635833, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41962794, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 33012214, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42055670, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 4435958, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41005080, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44327827, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39037627, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39282122, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 45476502, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41781421, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "e09e5a217c25fd430a67c76ad5de589a5abd0a305a026c7eaf35e3b58ffaa5b3", + "plan": "88e012bb3a3c094fe9a7ad7e827c1e666b0bcf5e19ddc041c768a5c130da468c", + "items": [ + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 40, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 38795327, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43496376, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 34431825, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37398960, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35774579, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40458459, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39354923, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42113876, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37099583, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39800875, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43136922, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42160157, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39511501, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38539127, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43429046, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37745580, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35640796, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35272465, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42275005, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38245371, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 5885251, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 45541335, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37562248, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 52159169, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42201586, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "d8d2c6d518de48bc5dbab7ec7b94ead27051020352c44645aeacd3083322e044", + "plan": "6b49eeff4e6b7a9fbc3e36b88c17fb5a917dd3bc81a4f4418fbb304c69b6907b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41411496, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 37765373, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 33951129, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 47543922, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38746412, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 49039073, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 37685921, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 87, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 87 + }, + "stmt_duration_sum_ns": 30334501, + "stmt_duration_count": 87 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42079995, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37723073, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40976040, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44283372, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41402546, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37472086, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44380717, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38953709, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6232086, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 38913543, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37841957, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 33396251, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39845961, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41712917, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36955036, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "198ccee1df85924a030d67dd77a5fc0cef89d449760b1f6d185903c7e1df7b91", + "plan": "389d9b9408577da0a9ec86b92db9ff6dd43272219f17354f994c6d365fca1c51", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 35336002, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45205216, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37226710, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35265836, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41757259, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32591039, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 48271537, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37348835, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44973839, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 3856084, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 34213415, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45222589, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 46252330, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40327245, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40463039, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37663667, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39810247, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40337796, + "stmt_duration_count": 122 + } + ] + }, + { + "sql": "bed6f7b30d534611864ab8a2407551dedb7168134abbfbab5873dd6ffad3c4a2", + "plan": "92bf1734cc87aee219e431376a3f5bc58d7a4826cfc6464ec60a32587468d188", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44932628, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40903624, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 32695158, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39572204, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43063418, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40440254, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37021165, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39119417, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42290336, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 34861632, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39317493, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40030956, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41389217, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 5900710, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40642837, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 34888956, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43673876, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35682045, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45639794, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 40805120, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40991122, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "ccfdc9c59e78fd064a1d796865659a95fdeb4a01305830d0c953df4e049aa9d0", + "plan": "ed352b1a8475be3f48d9509a2299c269fb20facd8e0ca3ac63ae1ba0fda0a4a5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44545210, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37665498, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37884252, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38188124, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40410289, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44121122, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 50210166, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46220198, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46475246, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43426383, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44174045, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36910207, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38224418, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 49473626, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 7298166, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 48852714, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38531746, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42370623, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47115090, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40730416, + "stmt_duration_count": 121 + } + ] + }, + { + "sql": "9957f278c418541b5a722912a9a3e3e8040b9790fdea85c34ab52e2ea9172c1c", + "plan": "ade969de4cc8498de6da5214a73cd674fd0f7eb263ecff7c2c99a2e8f137847c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 36752088, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40637537, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37748081, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37985414, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41690952, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37840831, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36347127, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39939706, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39227496, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39443535, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36506793, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40976955, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 51604501, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39271663, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42919874, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35915077, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41565794, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 5063083, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41544573, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 38073251, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43161211, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35359254, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39164538, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 48976874, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39189793, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 43459622, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "ac4f94c24b55b6b9eefd4116de44f115c2a3262db4631f14c0f6e74ddc89e435", + "plan": "b35ce95b46f0738d6868a0d621aa838c51927e5110e65385449458a856464602", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 48412369, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43769636, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48785411, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39679381, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43539203, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 84, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 84 + }, + "stmt_duration_sum_ns": 31102498, + "stmt_duration_count": 84 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 84, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 84 + }, + "stmt_duration_sum_ns": 32358911, + "stmt_duration_count": 84 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43360334, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43058084, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43927079, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47269510, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39788078, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40122996, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 45700203, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 6582125, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 48321296, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46047715, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46916924, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 43590994, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "4e9e834621df5a3da4e1b5802318aad995dc5183d39956c3446d35609f00e294", + "plan": "74df3310f3dfa7c4d9f4b57ec54b41b87bf102b36ae16dc721228cb6cd06c2c7", + "items": [ + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 50, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 47143962, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37648877, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 47229964, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43423706, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 46292250, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39659507, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41951121, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37555201, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39484215, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43134545, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38470545, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37448794, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38260039, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36291920, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37949590, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42945787, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34090575, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 5, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 5 + }, + "stmt_duration_sum_ns": 1993293, + "stmt_duration_count": 5 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 157, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 157 + }, + "stmt_duration_sum_ns": 49697266, + "stmt_duration_count": 157 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45904628, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41321125, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42088837, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40430748, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 38340210, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 41061881, + "stmt_duration_count": 119 + } + ] + }, + { + "sql": "637ed1dc07cb1dfae21a40998973dfc68a1076e4b4c0b96911527473eabd404e", + "plan": "147d4429b05da6f83bb6bde19c20ef1f28d240bbc036a91e28182a2a5e6687d1", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 30, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40715748, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41036916, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33106086, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41325955, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36372041, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 48775209, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35038626, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39942795, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41427879, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38988423, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47868332, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46373078, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42081332, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 30790585, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42081461, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 23, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 23 + }, + "stmt_duration_sum_ns": 9067960, + "stmt_duration_count": 23 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35068997, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44556588, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 32562830, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43331708, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "72a494b42f8b2089261997413300824a261dbee03e4a19508ba673e7225dde77", + "plan": "6d501244687e64ff4a698c0cc8c29293899f12754c65452b4edbdc0d66073018", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41137456, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 46746864, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37774087, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37469416, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41634914, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 35368960, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36261422, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38160159, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38951252, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 49075670, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39574587, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38567952, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 49221372, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37850219, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 7755791, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 45529617, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33198417, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37668707, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39157957, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 88, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 88 + }, + "stmt_duration_sum_ns": 27059953, + "stmt_duration_count": 88 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 41735379, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "bf2478eb7cb69cebbdbb1107fa5ae097a42481deab06ac793764cb0bd8bc7232", + "plan": "ed1dc65f5e2b504af705fb7aa1e10ab826f7b193f9d8fb6a4e50fd425b42c5d5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 47270921, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45140284, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35787169, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42416167, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 47009501, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43943544, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45027581, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43593248, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45010259, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41462337, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32063289, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40874628, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35069454, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 46696792, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6692124, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45160749, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 34646208, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40499458, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34058622, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39904586, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40582202, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 39678211, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 40395960, + "stmt_duration_count": 113 + } + ] + }, + { + "sql": "429d95a921a318eea34ce35f9367afd84a936aa4ebac3823684e236b741f10b9", + "plan": "e74cec347241d5182c8017d6d42c59dd135d7d6642971e2a9ebee57632ec0225", + "items": [ + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 30, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37890373, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 49496958, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36284750, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39089410, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39620167, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 48018174, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 38112419, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38547207, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39954456, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46010508, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42782826, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 37478039, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36996209, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42035501, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43417246, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44190291, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 7622790, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36780298, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42494077, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41656334, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38426918, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45439828, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43982165, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 48286914, + "stmt_duration_count": 134 + } + ] + }, + { + "sql": "9cc4c3b727872679b69d052e1b0c747e37eff5d98e95a06bfa454a9c8653d3cc", + "plan": "28ee491567e0f2b51586edb45a5cac36561ab26ddb8f252a623c628f9b877db5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41781876, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39183536, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 48522743, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33885045, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44331707, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 46471832, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41186665, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37864206, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 46443539, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37256370, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41361038, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 31503583, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42359708, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37333207, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40686427, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 20, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 20 + }, + "stmt_duration_sum_ns": 11003671, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34003086, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 39905337, + "stmt_duration_count": 99 + } + ] + }, + { + "sql": "12bf122c2ca72a92d29e43db957743218eebd049c997f172e2dc63f43fcd8a1f", + "plan": "e10168a06612dc693d754b629424dce3fded4f18126c9ae6a5c8f40c5aa93e88", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 48290295, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42357619, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39251043, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40767044, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41477250, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35415045, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 37004004, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 84, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 84 + }, + "stmt_duration_sum_ns": 30821917, + "stmt_duration_count": 84 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 45717249, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38363085, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 45850508, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 32821172, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40285374, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41479450, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44091377, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 32780207, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6159166, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41357381, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44764248, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36643289, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38123291, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40492169, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43420041, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38521088, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 49774500, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37698832, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "51e3ad9432265fede8ba04aa0940dc43c72206b6c9c50f37e850e8be0f7172af", + "plan": "2458e77ef027357bef2f531c41e5a098c99a523c1beec723b041ad48bb7257e9", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35488378, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43589415, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34931993, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41042044, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40459791, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45156131, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37893459, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41966709, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 35308955, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45626385, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 40603214, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 38356870, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 34704216, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7915705, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40892126, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45369325, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39365039, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40828587, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38972499, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48657543, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36998502, + "stmt_duration_count": 113 + } + ] + }, + { + "sql": "0ea44f4aed6b13cb96a248533fc00205477763f56d4dc877971c267b1b9420e8", + "plan": "93b5f24d40edb8a94ac2d8cd6f0176e466374935bb9cab47766dfc40bd90ca31", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36506500, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 36812918, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36402543, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39326541, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34925788, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 31204581, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 47681329, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34620584, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38321205, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42143957, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37979918, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39826041, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48560000, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44625290, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44978577, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 44117873, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4956544, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 50064588, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39467336, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "ce82fe3dddc94b035b667d9759c43afe2bd8d9e215d902569c1a6956b7edb33d", + "plan": "1a85dd3ef305f16957bb36b24696fb742203a39e1240528783a0060a15074922", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42642834, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40939542, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47386047, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41379414, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44131629, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41521412, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43384454, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41455796, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43935623, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 49573710, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41320662, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48176084, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39888419, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39696711, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42602827, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 35666159, + "stmt_duration_count": 95 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42641125, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38612379, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37612416, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 48485833, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5219458, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44877043, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44466373, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 48412876, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40835792, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37658462, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36062291, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41747538, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 42990585, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "1a3c2ef09b33ec01c9431bacf71122309fd3b1492a40b5d4489350c41e894176", + "plan": "49495324986af3dc7f1382d0e2fad23e1d127ed2a7b105e9ef91051d6eaf783d", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40384792, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34998460, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36732591, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 50103624, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34779630, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 43692796, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43145278, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36608083, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 35630958, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42716875, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39349004, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38839554, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40979829, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44473497, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 8331125, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 34924541, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41472498, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39825493, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38645749, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40067919, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "2d5a8400f585b9da3b2115e6c907a8e370bafff4fb1328364a9a50457cef1442", + "plan": "dd8e445f483a7e9c838075adb850671aef134515454e9d8c163859177c31e6c4", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44447296, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41247163, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43189915, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 50154249, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40185704, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43756798, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 41610914, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41467295, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 156, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 156 + }, + "stmt_duration_sum_ns": 53066671, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 47482919, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 48168544, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 44440209, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5206669, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45403120, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 45951003, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38953215, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49449499, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 40118876, + "stmt_duration_count": 102 + } + ] + }, + { + "sql": "002449832cf721e6cf33e697508544a716bd6de8ac9eee8e56eb890c02e6b8d9", + "plan": "1fde5704a33bb139d08aa6d9b97106cb1dfb2368d1c063f4c84dead3464f0e5b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3289458, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3978666, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3950000, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2813290, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2932792, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2743708, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2624208, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3105501, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3517875, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3484709, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3688250, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3194584, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3559833, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2860541, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2895708, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 4871584, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2708542, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2548417, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3535000, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3872833, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 4685332, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 3054709, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 4727459, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3638167, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 4520833, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2528709, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3707040, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 3, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 3 + }, + "stmt_duration_sum_ns": 2645959, + "stmt_duration_count": 3 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 4190001, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 4111750, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 4506001, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 3485875, + "stmt_duration_count": 4 + } + ] + }, + { + "sql": "72c6028241d326a4a92c76e61d0086d0c0df0521f2fdfe35c37338d6990ec260", + "plan": "0e2ad29e71ec0883321f0d1ad11b02f58535007e86497c3485c64504390c0f66", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40507743, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36183207, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41073375, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37279291, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37900416, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39571417, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42977996, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35854917, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37552131, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 45736627, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40250496, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40647583, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38632718, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42152754, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44378535, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42481619, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37485709, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37847541, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 45708496, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 19, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 19 + }, + "stmt_duration_sum_ns": 12066039, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43364999, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42974625, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42190217, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35775836, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42982827, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41914425, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 38134039, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "eca94b3506875d1ec70e4ad8c4ff8f8d0d963fb42a6f92559b26e1cbac8d3c5c", + "plan": "7f77b4be74c018df163f99826ed599544aa11259a59c1cd4d0217507bf362e82", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 55480542, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 48040458, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 52788878, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 49682168, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42470661, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48437832, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 56477669, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 48234794, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 46343216, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 55604076, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 57586038, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 38350334, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40427291, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 46964790, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 51881245, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 45878219, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 7585082, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45479502, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 46250289, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 48500330, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 47337329, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 44193705, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 48621830, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 48634499, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "307313c7c9681e7b8be9e83d48bb6ca0b821c207c7e7981b828d115515c911bc", + "plan": "", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 557500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 167667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 212875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 171625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 174917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 129208, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 219791, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 156791, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 143292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 120583, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "4e96c15dcfd7cacce3c0f02af1c523b90a6b630f7be70d70261f8b38e08c9291", + "plan": "857c4890d8b953e7964574112abcd588d668333d9d15891d334b5a739ae5a5cd", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40617629, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37424452, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39943420, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39989410, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40552382, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41181081, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39338255, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 95, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 95 + }, + "stmt_duration_sum_ns": 33552667, + "stmt_duration_count": 95 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44904751, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38882207, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39775085, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41360449, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45246836, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41604206, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40178708, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 6534458, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44935336, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37866126, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 39611293, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36254832, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39527209, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42256626, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 35198212, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42526463, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "2b8e6b81eba7339d7ad8a9092c9e8ac4e1d2b082d571da2188678c04491462f1", + "plan": "4f7b6eb40a63021ed0b70e4b7716be9d595afc506914d4b21b545f2e38275297", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45847041, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44525337, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41971627, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37894996, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41294040, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43254252, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47033460, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 47205081, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 43157960, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44371382, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 44042539, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46077757, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 48144916, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43877045, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41116209, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 8940792, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40458995, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 43932376, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46589416, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 48490500, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 52522042, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36580620, + "stmt_duration_count": 104 + } + ] + }, + { + "sql": "573e0e1217dcd8b73210a9ed77e7e0b92583c0ca4a68313d067639641a9688ad", + "plan": "a6c0cfab5c4444868a10b19434c42bf23f79e5fc0cdb7322635cca7dcacc2924", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45202464, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34765667, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39531251, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43159422, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43825708, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39301039, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 41811040, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41615333, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44920666, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36358623, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 33199251, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45618410, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41126664, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37740370, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 2718542, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35241875, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 86, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 86 + }, + "stmt_duration_sum_ns": 34611207, + "stmt_duration_count": 86 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41742166, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40131999, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "bd0eaa029ff9ff2cdfb7b6700d1c714f2f8e9912dd829fdc53a51bb3e74bbec0", + "plan": "4a283e98364bddbcb436099cf70608aafff151bd0669ea36002dfee7e685e4d4", + "items": [ + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 50, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40011207, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 34702118, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39466465, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41262414, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39413295, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36706212, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 49306580, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44649707, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36431457, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40404335, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38443091, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 50796751, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 40200040, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40930331, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32358460, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38255165, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8969541, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38391835, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37966539, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37423418, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34504164, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 42486544, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35550708, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "072000f1f6e561c4fe23d86f71c55e728daf657db12902bdaca68b2b6cb42a8e", + "plan": "54ad2de95c11e007f1f66b8695643df8418af57e80d563872b2c7f9aec8ea0a2", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 50532754, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 51139665, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 54203666, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47087411, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42429674, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 45891628, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 58456252, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44672338, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 44324003, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49253705, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 55304464, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51728088, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 47699331, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 20, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 20 + }, + "stmt_duration_sum_ns": 9744126, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46447622, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 44679802, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 43472290, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 47399381, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 51812712, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 44944039, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 45370334, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "14bea443732cec67a490c8dfa9266e740679fd7910fa9d7f9ecf68ff92b7ef81", + "plan": "ca89db3049da7b6c3a3bc0bd28a4e517758d0ddc3dfba42f453f602865603829", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40954200, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35279412, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41228956, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42192295, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 34952874, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 50002130, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37532379, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37435707, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34543874, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42752171, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44301621, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40548251, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39365084, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36106958, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36162126, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 40820965, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37798291, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 5097082, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36593544, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37325125, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42960872, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42432791, + "stmt_duration_count": 131 + } + ] + }, + { + "sql": "473e95f778dc93d45c8d3a75c729613b26268fdd67152ace0ee61b422e283913", + "plan": "af3ae2576cbb181c04b9b5751fe4d1ed4a7978618937240729ab7a2fd58659f6", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47627163, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 48786928, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 51169547, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42665416, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44784290, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 41546954, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 47660540, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42982294, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 49044285, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42865007, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44424663, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45293423, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42686627, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 39038633, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 6084832, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 59938457, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42645626, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47196709, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 40831869, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 47461881, + "stmt_duration_count": 129 + } + ] + }, + { + "sql": "d1c7a1e699f2345454013d7720036c383205081480533aa20998c312dcb64352", + "plan": "7ac850a13acb8a27593e498752be197e0f0430d499fda1cd66f9fc460fc47e8f", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37049419, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42409959, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45618333, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42386467, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 45425749, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42949170, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44694917, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 35616042, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 39873289, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 40155251, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40723248, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40238371, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 44565952, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38012171, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 42539916, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38452257, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 5382541, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41501583, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 41351503, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40422955, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39363669, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41997833, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41017121, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "246d04ef3c995e605d1318171044c5845dee787180401611ab8f4dfc80dbf4f0", + "plan": "4ad5b4d8c01f252bced9e1a9e380f1a267ddca859ebc0b55ef4d5308d263bf59", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 47318292, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 48846043, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 42482543, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41219539, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38759461, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46029125, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 48847418, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 40890413, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42873829, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45354076, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 5995999, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 40549162, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44572705, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41338876, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41870290, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 38167084, + "stmt_duration_count": 102 + } + ] + }, + { + "sql": "b7f760466db12664357a2f00d058fa57f953107e99f07496016d2459f91b2f03", + "plan": "a7148e86e40f71838a556de0f33f242275f5ed4898b570924802f2782ac8919c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40244289, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 47342833, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45980964, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37981079, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41038623, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 156, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 156 + }, + "stmt_duration_sum_ns": 52003582, + "stmt_duration_count": 156 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40723626, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42841539, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 46086798, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45144960, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 52682668, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41271129, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6695792, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37523506, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40300287, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36811706, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42798614, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 44335047, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "708208881ec34b5a3dc00b47d8cd139478174f50ba6b528e347f8808b130833f", + "plan": "4948d22a38acd0d938c850e21c30e240687d1ff74adb8da96495b001c48e6b88", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40550995, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35604997, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42861129, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43690801, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 37509788, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42872963, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40791453, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38863164, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43273547, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 37369833, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43190452, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41528123, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38351669, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41368587, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37334291, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 19, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 19 + }, + "stmt_duration_sum_ns": 7429500, + "stmt_duration_count": 19 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45351502, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 48828251, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36766833, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42147914, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35235463, + "stmt_duration_count": 108 + } + ] + }, + { + "sql": "21ece575bec33af7220b6fbe3463e5ab86b6eed43d3b03f63dd66d5eecd7a43d", + "plan": "fd53962eebbe0583624b99a6e9918855625bb36dc309c7cce5f30bc37eef28b2", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 48432665, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 52180680, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 51972542, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47490878, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 53043748, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 41566753, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 54839500, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 63031910, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 53134169, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 51054956, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 56098213, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46732878, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 55702793, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 45892750, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 55145706, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 54374751, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 54976880, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 52354087, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 54703127, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 50815662, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 6683957, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 48895537, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 46789579, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 51666543, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 57022754, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 50188161, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 51689910, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "c96b99dcc0c325aed522e94441ddaada93844553f0e5de830d6da9cec7ef61eb", + "plan": "53047840b75c96e2283f4f58e33842df34c69318ec390ceef3c79b800dd0fa4d", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45670457, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 33384215, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45053330, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 48001424, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 30532288, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45591869, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36659012, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 34218581, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39348126, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 37767664, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40549835, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44705379, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 20, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 20 + }, + "stmt_duration_sum_ns": 9286835, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43153627, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 81, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 81 + }, + "stmt_duration_sum_ns": 32843993, + "stmt_duration_count": 81 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 32430539, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44351623, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35731621, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38811629, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 47078373, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41309878, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "da25480fb483e6ce3d30f1a179c3c07e9f3b045425b0ac54acc6758a97e2db62", + "plan": "", + "items": [ + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 28000, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "5339c6159fc04ca4a07e62d12e85bb885b69783c8c64670c0dd00f86b74063f2", + "plan": "14660415277f8cfe02fb0f78712c0c772274ca2d05ceb48a4088f947b421312f", + "items": [ + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 30, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37690668, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40138369, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38782913, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 37563835, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39626461, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 39759885, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39936252, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42048919, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42313627, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45836743, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37592246, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41872750, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42780047, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39940834, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38405669, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42947327, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 19, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 19 + }, + "stmt_duration_sum_ns": 8566751, + "stmt_duration_count": 19 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 45825674, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 37693084, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37851343, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42050713, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42877738, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "878e14ec4a0bc8c53a3e3761eee7d634092c64dcca5d222b613bf81539414153", + "plan": "b3aac9114f82f9e2744f6a30aa37107c9434fe02d5b2e2d3973a3206f02340b1", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43272502, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39759126, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39161369, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38500537, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36137664, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42483995, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42943585, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44721619, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 38371958, + "stmt_duration_count": 93 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39052704, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44709874, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34425627, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42137909, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44505504, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 49697923, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 48209584, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48449082, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 46783040, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43238002, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 8262875, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45447746, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43926295, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36748251, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36439588, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 44661539, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42869796, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "d3dcdd542a8e5cafe812058ab4bf3bf73b2e413dc76b9268943b0b32f5858776", + "plan": "186444e47bfa4eef4f16c543f366662d254362a940583bb7785024d0a9a191f6", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39582009, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38105336, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45890300, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42058078, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44512886, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46480135, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42775424, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 41734008, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40997711, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41255793, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46263501, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39889420, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 42056834, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45035214, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39922957, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38191951, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45911669, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 45593667, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 7, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7 + }, + "stmt_duration_sum_ns": 4196707, + "stmt_duration_count": 7 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 50949498, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 45951664, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39343545, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39750460, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38116002, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40931838, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 39727004, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46652041, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "7f177feeaff1dd8758b09876f80872bd2379239948037e03a8276317b3272895", + "plan": "cb98ccd9809aa02d651671e01b69d146a0f30fa6985e1f0dd966875fd612a808", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46756832, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38724046, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39288751, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38397205, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39851256, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41908492, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41514788, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 41277754, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41499082, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46023286, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45598747, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39529752, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 34569917, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41043376, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43891086, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 7385999, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39970623, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42716414, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38183256, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38399422, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40128366, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37379506, + "stmt_duration_count": 112 + } + ] + }, + { + "sql": "b01f0cc462a23785507b10e71cbd3ef475c9ae593fe701f8a85f3ce067225c67", + "plan": "e92d53ca0cf5b6d073c5eaada3405011e648dc9ddbd60c79c8a9bb1d661b02ee", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43235076, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40602330, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 31150589, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37137001, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40256459, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38698789, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 56801290, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35411711, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41785165, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39608043, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39073620, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43689414, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 8212044, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34237003, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43649211, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41745800, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41733461, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 34289459, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41367374, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "3b80e0bee3df1cbbc302be40de214149cc9169e58979d6b1c8bc4c9abd127239", + "plan": "0f7e72ea2db0e697a6aefddb9fd213037108f097f03596132c1c9a722c395e0f", + "items": [ + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 30, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 52681462, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44831877, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39965542, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35896288, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38678503, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40178491, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39479419, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40196291, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 51307875, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36234128, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37456751, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39919372, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41439419, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40137915, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 50680496, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40676413, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 48985629, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36175749, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40879869, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 3211166, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 36530295, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41823748, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42036041, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41023951, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 38360914, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41290627, + "stmt_duration_count": 134 + } + ] + }, + { + "sql": "27c648ee1ed5ce1dae9e0ede8c35ee412b94ad908b9e370ff2f71e0e87514f70", + "plan": "7b52e2bc4cbe9d8c04c3cedc6c34feaaa77ab2044a912756998d24d42141eed0", + "items": [ + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 30, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42544578, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36540167, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44177417, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37100968, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40281334, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41165501, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41366872, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32959131, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40280829, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37814322, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46960001, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48019094, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38273333, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39219664, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47942337, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 5285500, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39501382, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40679377, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38690994, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40902457, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44318161, + "stmt_duration_count": 134 + } + ] + }, + { + "sql": "25aede95c1dc78206dd95959ba674960c47a1b0f46de1b9e0f5fb2136fb1bf5b", + "plan": "37a31d69cc7e6928ef3510a94001bbd3f857b07b81ac37188be7a4ff4ba7c854", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 48917497, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41931336, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38297172, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 43146051, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 36397669, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39939462, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45177203, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41861121, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43601206, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39651839, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41667039, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 32992668, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45763292, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 36332334, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38138170, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 46710794, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43744748, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39945169, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 4940458, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40523874, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38307254, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39049212, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40793885, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38192792, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 39198420, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43121334, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "f6a6f79fb7edadfb543ecaf1f981847baab737684e9752e3c85adfcec16d19ce", + "plan": "390c381dd2eab7649ab6c53c9bdb54a7c05746ce940c9666481f4d8030bbcfef", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41919500, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41671511, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39936543, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 33264706, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 45768321, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39091629, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37099963, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33785371, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 39855956, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 43751040, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41844050, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41197461, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5130542, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 45710124, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38844544, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36315954, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 50377961, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44336453, + "stmt_duration_count": 129 + } + ] + }, + { + "sql": "5ab459c4aa12ab68a01da346796d2976d8faa241d33c2048471ff4a0a9033e05", + "plan": "5f7ef4a3381d48c704e6a8993b89773382ffe8e4d11731fa76ba1fa8fc96a45e", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 46295874, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 38521049, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 49283962, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 53734748, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41358207, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 42600508, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 49493414, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 46950086, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44464330, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 55255957, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 47538502, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 44818170, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 49751665, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 52206128, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 46730582, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 41595581, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 5237168, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 42815252, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 50384116, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 44457585, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 45102789, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 50984702, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 49008751, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "f634045c5f72e35866075b1fa2b449c0a326f105d21869b05c9c588b3d114f8d", + "plan": "5ef935718a8d0a6a335434598827f354ac41ccf12060419dcde8144126e477e4", + "items": [ + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 40, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38997294, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45030800, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37247088, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37495539, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34856706, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45985079, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42183334, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43208168, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 38589418, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39206042, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40241618, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 35970001, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40189790, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46269794, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37697994, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41785120, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40432541, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45686711, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8831706, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39001337, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34737464, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39195703, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40832912, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36921662, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43308790, + "stmt_duration_count": 132 + } + ] + }, + { + "sql": "08715e6cfdf749f2c79b3708e2e4ddfc7b0e80f697f8cfe419695936b26bb970", + "plan": "5de10fae0759f3e30f8c25c5a02173c41600df6648db56ac284d09edcb8933f9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46202746, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 56891251, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 48254961, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 61784338, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43868827, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 50648957, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 58728917, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 42412877, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 54834953, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 59660957, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 53956878, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 50602297, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 49911382, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 42527249, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49808535, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 49186033, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 44058672, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 3601209, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 50091999, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 52731293, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 45457207, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 50024828, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 49750376, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 48811250, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 42509960, + "stmt_duration_count": 100 + } + ] + }, + { + "sql": "1057b40cc0435ff903a42d00ddb3ce073bc73a9a51d23d4c49e3ea4f096a1952", + "plan": "1c6a2f3ce2e47dfb814713f835565fdc67871389fe3cab97c0295a47851036b4", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 49860295, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47256915, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40839461, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45111872, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 48613174, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44366373, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 46764456, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39161995, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40628294, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41386252, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 36096750, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 90, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 90 + }, + "stmt_duration_sum_ns": 34724079, + "stmt_duration_count": 90 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 44012881, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45475001, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37050624, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 47276881, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47261249, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 46549505, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 22, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 22 + }, + "stmt_duration_sum_ns": 10563792, + "stmt_duration_count": 21 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44350708, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 44506790, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 50372407, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 51370499, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48326210, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42312871, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 44031870, + "stmt_duration_count": 109 + } + ] + }, + { + "sql": "b74039c49e5dc02ef553612c08632b0b9462eb874dd12fcd9be55c019eba5cc0", + "plan": "9da4093c5e70bec7a8e8807eb6f2a06044d422725e2a5a96f34ada1b750b4d16", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43516836, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33393875, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35806506, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 39886629, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34972622, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45227083, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38937291, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34550745, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43490873, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42020708, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36621464, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6937584, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43887833, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46439757, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40250920, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38711996, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40611342, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39840292, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40980711, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34406084, + "stmt_duration_count": 109 + } + ] + }, + { + "sql": "70adf8c4ef0c931345c4dc25ad1c00920351ec3e7e4c562d19bcc1342360a95c", + "plan": "0ab0be2f1163a779904a211a84b40c5dc0c9732c765749adeafea22acbe262ed", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36957130, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44659830, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40973707, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40140341, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38690710, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38645913, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42466833, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44055918, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39095999, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43887082, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 46247249, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 48866461, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6008084, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48803828, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36442752, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42801374, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44124999, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "ddc7e740ea535cba6dfac137dc04a77710f8b10719ccda4588c2ab19e6d76a6e", + "plan": "a9a07bb39eb4b35c71b41b166706434f1eeb05032bed8804593035cd2ae5ab86", + "items": [ + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 30, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39899789, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46924086, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43911422, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41454744, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42379162, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45973695, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41239035, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 48018414, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 41692959, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39373873, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44114631, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39757581, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 46527832, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39265920, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37203374, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 47543841, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 8744332, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 38411760, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41782549, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42767500, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42987672, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 34872086, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41524754, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40546874, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44129499, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "40f50f3811b3fe75b378697e7d4651f670f0dd400fb1e3d47b43b93d5109c7ed", + "plan": "7649a4c292548267df8be07a8fee2e8ed02e803fe984f8c070c7727073ee761b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 48523458, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 50387795, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46336714, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 45577289, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 49216420, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 54672500, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 60506874, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 52368082, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 52510422, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 57456631, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 52739829, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 58261791, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 53476376, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 47217128, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 51795672, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 11056833, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 49405717, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 52424413, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 47051411, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 41574753, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 47527040, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 53022370, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "7d8c82ec1334cffd76803b3e7019edc0346ef01aa70e4578f58324ef503dde82", + "plan": "3fd9851ef20f1aaa15553306231179f56b969697e0640c9cc8cccc0ea7544119", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43825297, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39695838, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36618335, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41983670, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43228871, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34032581, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43428213, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 40177205, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36375956, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40336916, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42889000, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44180294, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6623377, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38078254, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38021542, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42704868, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42779164, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44483003, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 87, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 87 + }, + "stmt_duration_sum_ns": 31701002, + "stmt_duration_count": 87 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37612880, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "576a9028f0ac7b469623dacfb83858f2252b0b6d202e071cd5a773c15c0110d9", + "plan": "6981c2345c6f6fa4ec375a16bedd581f64ae416352ce4420c73ea867085abe83", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44218882, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41690209, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41073749, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46163620, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42776843, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37783041, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 33175918, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41266916, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 45470957, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41979576, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 31275956, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36263965, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 36502585, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42879583, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41004918, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38961955, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 3064749, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 35979044, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 38766879, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37595624, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44102497, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38345877, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39917578, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "b71f384ba0840117be470b86ba9dbf1044e5b53b8a2cf50ef8834daa05a7c7f4", + "plan": "5fad4eaa2810024403037260a40b6408efbfd5424a05cee71bac198a87c90511", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39289128, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39580958, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35462916, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43607251, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40596085, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39340003, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46641339, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 34737329, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42588334, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 34035961, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35420326, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38658624, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44159959, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43015833, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43204622, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 36167795, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 32453624, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42797834, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39105414, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 4207706, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39798867, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 53523003, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43575506, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44755376, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43685295, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38641289, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "114c22c9c03b74702d2c7f7eb42d6fa9b7e08a514368ac959ae111922ec3b092", + "plan": "30cfba9fa0f59ff8522186c060f8d4c76d2c0a8c02abc17d94f170bf3584d3e9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39330249, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41045958, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37303459, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42311211, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43553040, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40589179, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39224287, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 48029947, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36150044, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40002252, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36798875, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42785506, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39609418, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42062747, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36826092, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 33296166, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41136416, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8079165, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39270377, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41374829, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43228451, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45847994, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 36063209, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38800412, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "7e0c763e334d1fcb954f036ad09c59a2c3cd21cbe8a6a525f16450edb552a224", + "plan": "02017c99ce4a1cf735278b41aaf5ff9812f168f44efcfdd198ee54cfe6778188", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44077789, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42325421, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40251747, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39805992, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41365795, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41761456, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 50700083, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42065208, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38008374, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36250499, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44364215, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45514034, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40253411, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38592624, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40192001, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 4771000, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41065533, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42701911, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42872431, + "stmt_duration_count": 131 + } + ] + }, + { + "sql": "bf6331edb59ad1d90459b8ff43c1320fe4566ff017d311dca60456d024e53c78", + "plan": "5505c275e1292de52fadebd14347e25f0f4ab55c3774afd8f93a57741102f0cb", + "items": [ + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 40, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37555126, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 43194338, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41957118, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46611581, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 38216251, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46515290, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 52956876, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 39277205, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 46481709, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48307296, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 55460505, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 51667127, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 50473960, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47887704, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 38079289, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 5441249, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 42234424, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 44936955, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 49437710, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "82444fe4b0dbbf84e78f8ac18d34bb75949e74c152105e708ef2e1f14119f974", + "plan": "9a04308ff8b72e1c4671eb762d16976893f4a7e3e686382ca07e48d5382995e3", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 41868462, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35404032, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41137463, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34660828, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40011781, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40152754, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41319298, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47564088, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 48265670, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37491201, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 49073083, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 32546999, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37423165, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43592877, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 8884375, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42034127, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42161747, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 40523162, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37127415, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43689661, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43411464, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44198539, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36481335, + "stmt_duration_count": 112 + } + ] + }, + { + "sql": "daa7b79e49b8979ee27efa8ca37ddee13e63ebea465515d003cb628784e38bcb", + "plan": "e7243b3a606efe66c29b52d5c0fcb19aeaca9ca9da33823ce4b225106f6d0c88", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 901667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 804875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 885250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 670583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 800792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1055000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 868500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 988792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 680375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1050542, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1026042, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 877625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1361083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1029500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1198375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 895458, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 943500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 864208, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 920042, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 846792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 977375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 818000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 959000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 760208, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 877167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 817375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 648042, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1093375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 901083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 854292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 792417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1098375, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "9686cfbfb4a7fc958612fb976fd5a83eb6e860034faa5b9ccc6c7e87ce5fa67c", + "plan": "c338c3017eb2e4980cb49c8f804fea1fb7c1104aede2385f12909cdd376799b3", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1910542, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 2186417, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1534625, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1685875, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1853083, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1938333, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1465667, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1680541, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1784834, + "stmt_duration_count": 2 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 2, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 2 + }, + "stmt_duration_sum_ns": 1832708, + "stmt_duration_count": 2 + } + ] + }, + { + "sql": "8d5a6b18c4cb6b0cdffbe82b1fa8357cb9d4c783b39180f5ad9231b157142756", + "plan": "4d877578541c6e1f5c011126a662c3862329c758516f7ce7ad4a38dd4ad77ac7", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44173047, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 58202924, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 52402713, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 41471043, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 47413800, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 52586080, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48629538, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 47043085, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 47922326, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 45760296, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 42247538, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 38373464, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 50988753, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 45101708, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45014297, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 44616876, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 51418246, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46019422, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 50733500, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 44418666, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 4318459, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42698920, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 77, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 77 + }, + "stmt_duration_sum_ns": 33266792, + "stmt_duration_count": 77 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 52393215, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 49625330, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 44537703, + "stmt_duration_count": 99 + } + ] + }, + { + "sql": "1419dc3f429d38aa633c567e9a7382c40500243679dfa77e81a8e3ecb9436ee2", + "plan": "29484af8ecb33bd721aada2a65e777d1777fbdefaa439f1f3bce3a7a45698fab", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1957917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2323625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1991750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2419166, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2220625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2087750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2061167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2363625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1957625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2134417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2115333, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2690875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2208167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2244542, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2096917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2212791, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2091958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2401708, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2257125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2748625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2251667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2248333, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2388334, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1942667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2291000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2222084, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2115583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2607500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2214792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2498667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2468500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 2183292, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "f08912332af45bdad85ae47f0d43dc80a5242649e059346b6313b2096356407c", + "plan": "aec844586a5e2af62f7741efa9bff86876ad47a8cd388c6c7272add09fe6c7bc", + "items": [ + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 20, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35602283, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44580620, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42806125, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41436503, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37541797, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 46967218, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41905836, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36667214, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40143836, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36903496, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41097624, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41735830, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37528996, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 34855454, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38821961, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 34790917, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34417837, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36865757, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40021294, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 35349754, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51256827, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37095548, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43534459, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "7c450a505576bdeaf6059dd8414040c43984ebcd7c59d3aeca77ec2e17fe2ef5", + "plan": "760edd8ad74d9d150dcaa35f0a29efd2cd98fad1e1119b3d7546f2939607b6df", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43499580, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42490921, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 47469369, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36933747, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41416502, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 49145960, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39605127, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39458249, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43475376, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44087207, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 49941335, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38030165, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35221630, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39093666, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 8774334, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36904759, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42619168, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41169792, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45109290, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42228003, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37235008, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41695205, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37632166, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "589595bf9d23341e8a76d59bec4f2be8dd57652f2c215518142a9031fe751172", + "plan": "08099801a6fd77f9d9e166b1a013b4212be4cd854ceff6d6aca0d9d1d6b87308", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 38440827, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40931956, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 42287459, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 45137956, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 46484756, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 81, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 81 + }, + "stmt_duration_sum_ns": 38342755, + "stmt_duration_count": 81 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 44043582, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49810044, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 52493379, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 52813417, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 56027076, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45285916, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 50572790, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4666042, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45456414, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 41980047, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 50388256, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 50613167, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 49060702, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "34a064596b5852f3ef315ecc76deecb237c91bae6f57e4908df840547705652b", + "plan": "3b854e1e433eb84c8d3767a34c49ea68a945c424021cabd6c1f8b4842fecc3e4", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42937036, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35852036, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45170583, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44251423, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39672912, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 34134837, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44578254, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43962466, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42125377, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42936751, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37217796, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44152541, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 22, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 22 + }, + "stmt_duration_sum_ns": 11888082, + "stmt_duration_count": 22 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37749622, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41317793, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34347294, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 45895624, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 48161212, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 40355082, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "ddc8749587933f3035f5c8651b5042d8f8fb5ca5fb5fd86d1109a304ae1ed314", + "plan": "1733176cf27f85b29c9d145eb411cb3f26f287d05a303bb8113a7d54b49d906f", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43838371, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45327506, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 36011164, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44749880, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44125667, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44076999, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 35183457, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40254160, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35347828, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 32121416, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39784500, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42982169, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43151040, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40782326, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35271835, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38899748, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6065957, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 37798752, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38288421, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41317587, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "14ac231e61f3ec9d89537f0850a7febb691f7c12c18c819c57db248cf137fa2a", + "plan": "2cbdb20e38dad7471d707f90a82176be9742dcba6e960ff47443422ffaf72a15", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 33994711, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37623331, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41641580, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42805666, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35002334, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38829333, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36715335, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 39543671, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 47709337, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42172122, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 34294289, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 40087958, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41529125, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43672420, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39964171, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 34693246, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46607870, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 11639208, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36373628, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43260832, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "43a1466d9335f28d45042300ced2c5445e23c2c48065330b4b3c5c8bf47f750b", + "plan": "df7d85e104ecabb4f3c9a93e09d2bbccf01fd50003ae5bf8a2d70616e0051a99", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39534662, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 40922335, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35723169, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 34302042, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39433500, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 49427711, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39839540, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35426047, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38075832, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39691886, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44362212, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39457879, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 39693759, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41759832, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 4, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 4 + }, + "stmt_duration_sum_ns": 1268167, + "stmt_duration_count": 4 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37970710, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 45553499, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36640325, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35205585, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40743796, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "111c76ce5dc87248ab2f7e8ffdc06be19b0099b59eb2c6345d6bf299b60139d0", + "plan": "5b9a7a2750aa0c5327731b857b935eaf0b161d6b827dc19549147570a9bcc1be", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 30, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43816830, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37107878, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 44685576, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39481674, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34151538, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 31918790, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39472507, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45977415, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 39081998, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38552171, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47121579, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34813791, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38897916, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 38469373, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42508833, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43598285, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41322000, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35703373, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33493997, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6045290, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 33794459, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38458830, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43640002, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39939793, + "stmt_duration_count": 122 + } + ] + }, + { + "sql": "bcd7df1463335119fc75a5a25ae9cc4fbb2403bad111f18913a53838d1b66b71", + "plan": "427b520df1bfa8a66481180b3e307dcb884a99b60de3967b55ac08615b0f46cf", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 804375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 811833, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 761500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 526708, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 773916, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 934166, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 560625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 664667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 774875, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 855666, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1139750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1013917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 729458, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 839250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 733833, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 834292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 812375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 723042, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 902500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 725709, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 710667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 605333, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 695041, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 977500, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 714583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 591292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 761000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1176958, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1015000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1018834, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 760334, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 700167, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "74487b029c3cb8b65de023793636895488995512d85b98b5ef27aefbec29b89a", + "plan": "7e42c6593afe4995d5ebf0764fc8815b1fec3bc43ec42b742c456a8f05e43853", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 768083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 877125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 717292, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "e36fd6d60845f4707ea2a31a8ed2165e9ff1477b02d95f8b9ee2e678ae85ec03", + "plan": "6233d0663569f2a51c3eda1f5043c80333b3eddafafa9185e4eebf701bbc2d44", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 39593796, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38064039, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37515044, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43047410, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36797674, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36672926, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35018504, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40720089, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40185122, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 78, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 78 + }, + "stmt_duration_sum_ns": 30625584, + "stmt_duration_count": 78 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40270121, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41408913, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37676832, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 41498589, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41584627, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 34832505, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39988132, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39487877, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37078955, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 2717167, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35701037, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40522956, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42322287, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 32276545, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42853087, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39818375, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46187504, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46115910, + "stmt_duration_count": 139 + } + ] + }, + { + "sql": "f915275bb5a82c46e981009aea8457a875ccb0d8dca16a391d0e3414e1a5d7fb", + "plan": "98f6797910cd496677b454becd6b192363fb4034ffd648350c33030e39984d24", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40712744, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43851578, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37451458, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37757002, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38212830, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37376495, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 36046298, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40588627, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40576252, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39173283, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44664677, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 52024537, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47009128, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36140917, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41646254, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39240628, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37367877, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 35936758, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 50628833, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6324291, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 35494081, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39118508, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43667504, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35908627, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35962501, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 45410874, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 44404707, + "stmt_duration_count": 139 + } + ] + }, + { + "sql": "d736899c9fcf009edf573dee2aa095fc1bd9019e824e6603c62c3530b318c029", + "plan": "260234b3c6082363cc75de66399d5b6fa16d625eed698d700ca642bc80adaf03", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46958338, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51578165, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45608454, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 41273589, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51767160, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 43495338, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 53673376, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 47497373, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 44977669, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 53762043, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 50541415, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46710744, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 51019701, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 154, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 154 + }, + "stmt_duration_sum_ns": 57699084, + "stmt_duration_count": 154 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 4356541, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43864039, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 45083036, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 44548173, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 56644463, + "stmt_duration_count": 142 + } + ] + }, + { + "sql": "1dcf677f8c1797d0b44ad66c4d36aba7c46f9fee279e9cec5a0179474e14668a", + "plan": "555332134dd04e653e7c085c787bdfe1851405ab076a5b1777ff092545f9da6a", + "items": [ + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 40, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 42876216, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46663000, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42356710, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42784328, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36824797, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 36243670, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40801085, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41736663, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 38623288, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36863424, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37541040, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 46690623, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45276250, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 5860834, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36258913, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37497956, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35822755, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42370495, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42102503, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41740253, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "e8dbbe326a2fcaac5fc45e9152b2723e52de041dd3331ee24bc750836af8e11e", + "plan": "aa9701b43b18c14d5c749a5ecae822aecb604494355faad369644b4bcddd203f", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39037834, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 31854210, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38440578, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32784668, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35759330, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41468291, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46691455, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39759830, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40281745, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 45662421, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35367830, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 47646383, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36047584, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 39742460, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33739124, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40266776, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5457210, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 43814705, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42228500, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41772380, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42549753, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40907081, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "3027e715e2dca2bf009975580d04ed44539fba886004d93783c4e5c9c4166d10", + "plan": "7f27e6dfa214926eca95e43786261cde5cd998a70821a0af654ee02bff827ee9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42196000, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36356714, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37183503, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42598875, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42193173, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45604373, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35207374, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 46604794, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36193001, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 90, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 90 + }, + "stmt_duration_sum_ns": 35110999, + "stmt_duration_count": 90 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44695546, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40283292, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39484171, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38448995, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40909882, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38048997, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39272748, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34676625, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39308335, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42531533, + "stmt_duration_count": 125 + } + ] + }, + { + "sql": "49def4368eadff666271ce8b46d756fa08116e4be20d97cf58d42699b46a0ebe", + "plan": "5c1b4b590cfa909d089e7b99b0d2e25b55929ad5f527180070f18533dcc464dd", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39673040, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41260966, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38308241, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35040588, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35073369, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44253617, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 34927998, + "stmt_duration_count": 93 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40358290, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43362373, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 162, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 162 + }, + "stmt_duration_sum_ns": 51029794, + "stmt_duration_count": 162 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40919587, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39598120, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42959087, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36251079, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41495574, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39825290, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41929242, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6247540, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37424706, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42135082, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39947951, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40637754, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40220755, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42273876, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 35602330, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44455419, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "bc49515f5bb152368aa1ccd39ecd089c35a34d1beab2876f3bb1e2afff255cd1", + "plan": "517e0b9ab093e9dbe787f0818c625e5089e8c3cb925b606c168536e983b16000", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 49116628, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45423415, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 45847168, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 51863879, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44707834, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46926206, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 49828256, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42066623, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 48072961, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 48673040, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45147079, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44569374, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 51259376, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 44147998, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 41476537, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 52000371, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 47172507, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 7481000, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 51380423, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44122580, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 54150583, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 47988374, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 57272079, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 52403000, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "7751bd4f5a28ea7d6c7a2fbd2a371b31ae4fbce3cef3bcfe263e6475c18a9619", + "plan": "55c49efeec8685171ef9a7740483690f7bf0ede6df1f067cbf9ee7b3747b8336", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44844705, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 48398495, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44230415, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 44127292, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41052630, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43810415, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44658668, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 42828750, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44470291, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 40744117, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43131667, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 46977249, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43409204, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 49129839, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46585750, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7458624, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 42506000, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43710123, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 41140794, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "3cdf1c3b0cf4566f0a89101bea932efb28effc67561a9733eab27ac5af68036e", + "plan": "3c3afc829cee34311d7af1a8981844cd8fdbdd7c407afa275cd1cce4eb439488", + "items": [ + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 30, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46744374, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 51061880, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43812115, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 44194335, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 46081916, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 51968841, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 39493746, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 45973210, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48953667, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47303834, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 33979460, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45168951, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 38949167, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 45139175, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 48865752, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44137667, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 48882961, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 50143337, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 43250870, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 4797251, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 40730967, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 50411047, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 49636078, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 48404744, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "492159ad0a7ee04ad807119cc4428d3cb23a20771c562b6e1a9e78371ea35de4", + "plan": "d6c177eafa7ef13512d0ab500da057a8bf7a884a1b990c0c72a4dfb16568a67c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45082258, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44699084, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40975497, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38841503, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43537378, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 47091874, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38946585, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 36678615, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38886497, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 88, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 88 + }, + "stmt_duration_sum_ns": 31580420, + "stmt_duration_count": 88 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 32603663, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39068959, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37259125, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39882248, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 47805327, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6603416, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43031952, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35730165, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 41634039, + "stmt_duration_count": 118 + } + ] + }, + { + "sql": "587702c0ff9762869558cbe00f085a871f62a12d8fa2c54cfff44e7ca50ee8e5", + "plan": "71e6f8d3a506dadcd6e9b449ae24d0d3e2159df318c2f805730276e934f21060", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38545287, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42427961, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39401158, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42326543, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36401627, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38058841, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42143081, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 45410996, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 30192251, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 53863794, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42806331, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45081707, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 40750876, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39094580, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42366337, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39852456, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7914792, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 38955074, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41785536, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41720623, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41994132, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 91, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 91 + }, + "stmt_duration_sum_ns": 33863000, + "stmt_duration_count": 91 + } + ] + }, + { + "sql": "d2d92df419b0e31022bdc12ee132d0beadb0df15a9ca0227cfc9fc2c3c236a67", + "plan": "7c8645a174a875b3a757f6a176a5be08612596501e20d1ae37410dafba6d1995", + "items": [ + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 30, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37116675, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35472591, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 48074048, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38414876, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35882128, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37284334, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39754831, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40508290, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41939760, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 95, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 95 + }, + "stmt_duration_sum_ns": 39672786, + "stmt_duration_count": 95 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 37311633, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 44602171, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45841371, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41573589, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41003628, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38531338, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45610620, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 5592792, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 35551829, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38950082, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47413836, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34547124, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38236872, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38344419, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42905127, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40944333, + "stmt_duration_count": 125 + } + ] + }, + { + "sql": "6fef5e5498dc55eb3d88db0dd30c7d7f16da9f0869395b89f60d9f8e61079741", + "plan": "a5be327d92d9ac11b2b2a9d79b08d4a12f904e55c0dabb16ce825b28d32cfdfa", + "items": [ + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 20, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42146332, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 45512419, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37678174, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 33915417, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36885457, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40573997, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38727412, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38320954, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 44703632, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 35041956, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44715745, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43691746, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35656127, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 47596917, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41005169, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39540084, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45359960, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45060746, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 5454915, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42940793, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 40514747, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 45543746, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46193209, + "stmt_duration_count": 140 + } + ] + }, + { + "sql": "212a2ac4a1b54b277635e8f8a78a77f1526bd90365be1e0284cfd0c289b12afb", + "plan": "236b93cbda1d6881ec39c7f8e1750eabb0089d7da2f0692f4165603ace09926b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37966592, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35384080, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41394209, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43962837, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44586204, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44069831, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37547753, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42286456, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36985629, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37876166, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 53222997, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43632914, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42107662, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 49323257, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44723669, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6646961, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38475874, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 95, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 95 + }, + "stmt_duration_sum_ns": 35022917, + "stmt_duration_count": 95 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41775075, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44602793, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37067618, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41313581, + "stmt_duration_count": 110 + } + ] + }, + { + "sql": "cef17bf149f77d1b64e224212649e90a073186f7fe4943fa57cf7b12da3d3282", + "plan": "8fb75ca3f375da0bdfb24f381c4e178cbf2ded4215c889bf92e60903ebed28ca", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45116913, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45886712, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39477042, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42213500, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41748582, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37869826, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43621717, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 40784836, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 46876749, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 32627508, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 33377081, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 43065866, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 51422254, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42556081, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39843709, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38386757, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 38172912, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36964545, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 2478000, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41363129, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45346955, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 43162717, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35767917, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 47112913, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49745381, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35716374, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "a61e2b8810d40f48eefcaa0f0c46f2e2a9457e7afa125688c6b7d962b11defcf", + "plan": "819a115a124aa68eb9d143e96cb6715094ddbff7628c7aa9efb0a13bdb234540", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36982081, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41632828, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 30852794, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43360670, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37659374, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39776289, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38268882, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46327876, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 36557458, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40738333, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41170957, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35038585, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39405127, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 3511292, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 40003618, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44587171, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43263578, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 49147211, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 42499004, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38677874, + "stmt_duration_count": 113 + } + ] + }, + { + "sql": "d7fc367f4a94f651af8869132775b15d005834c9da1ea93acad50d50eb3a7001", + "plan": "e5003a13344e26b749329d8e96cae94e844a11bb7e027bd3ea5c2a39f7c07ee7", + "items": [ + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1271083, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "d8b60a8b847d4d5eed61444246c351a3c0aefa25fd9023ca878c8c04b76321e5", + "plan": "35cf595062fa3f99532ad0ed6e3dd3a7e162232bf24d242f8c78ebc6a8f0abdf", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36082585, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 51089757, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43475243, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41062168, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44741756, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38189793, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35637668, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46248199, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 40507124, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42915659, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38402122, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44493370, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 55615079, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39877334, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35837334, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 48663706, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40803626, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44025131, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 3490249, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43691506, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41175338, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36836832, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43422948, + "stmt_duration_count": 131 + } + ] + }, + { + "sql": "3afb4b27d6b27f83ca74e2c84ef918ea6c6c8233729e5096b396d8b71284b16b", + "plan": "32b471bfb91bab661d3b45ead13584397580aa482acf0c21fdae8e362b0eb5dd", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 33193292, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37021706, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45547953, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38269213, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43943959, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36788659, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42977333, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44558709, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35391417, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44462286, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 34429373, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42619878, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39697538, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45189498, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42391372, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37442615, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7467126, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 64775298, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38662456, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42890243, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43485337, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 40002000, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38146463, + "stmt_duration_count": 112 + } + ] + }, + { + "sql": "b4cec23ff29adf091270a597fd6e17dbb44c07da6b7e206da8ee62f8c793156a", + "plan": "f899437e9a50f6593fad3e0adee08667e238b1e286f865e70e7eeecbec6f8994", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38149458, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43363754, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34082164, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44270415, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44635751, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39811785, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46656711, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39295700, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37859706, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39367460, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 45840371, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41105003, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40534536, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42952416, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38351876, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7616455, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 35829465, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42872870, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41394334, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42389419, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39575123, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "180a969e9b667823704b1b8f86d320ae031fb6bfc3b87b77998151879c5cc67c", + "plan": "7d0802496bf5cd620bd70212456dd3cf40de414999265e35008a1ecd7378ba57", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40592542, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42709875, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 31284579, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45337720, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44492664, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 45516123, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43191873, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36595628, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36113832, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 41670628, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37608547, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44355627, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 47937923, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42285919, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 4102499, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 47194509, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 40160624, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 33608331, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 42163914, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36539877, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "f3deddb66cddbfde5403c79c61769804004246d3baac9578ea7c004fd84c0bcd", + "plan": "39c62b2d47951ff49d90a7f8dc4eaa8c41b9e7f9a5177222c971edf14636b978", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46529206, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47477792, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45411418, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 35160750, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44954047, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36035621, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48494997, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47202544, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44737751, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42544295, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48942540, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43273876, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44671667, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44405084, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43278880, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41465169, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40888204, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42106209, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42822210, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 9165335, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 54640751, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 50024496, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44221956, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39787831, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38583330, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "9e8adc1a1fd82b458e256b5fd12fa25f08dd0c27701bdc3a86d950f57a0ef3b8", + "plan": "9e72ad0a6816a7586f84b25bbf0bb3acb7eb12154a209b857348cf417cd7ea6b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51028417, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43791343, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43222083, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 49236381, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40950589, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42367329, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42827209, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44406545, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43591787, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 42415461, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 39038583, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 40799000, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 43586258, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43487921, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 37935331, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 51430585, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47019742, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5672958, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45736137, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41820376, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41692374, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48013955, + "stmt_duration_count": 129 + } + ] + }, + { + "sql": "45098fff5cedc843892776f431188fd9e0865ebaadc8e1dafdec4d4120ac9c0f", + "plan": "a00f1cfde52afe0f10d4bf62d56ec4cadf3e9651de35802bc510febbd065ceaf", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44065956, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36993216, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43761246, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45575581, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37934540, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41845622, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42365460, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 49433495, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46654917, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42695085, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 7088416, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44182373, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 62487873, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 40200413, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43496086, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46660789, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 46245587, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 41622720, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43573461, + "stmt_duration_count": 121 + } + ] + }, + { + "sql": "e0e3429ccb153c834788d08fc700e9b1050f006bb68acf2b95087d2fec51e5fe", + "plan": "62678c8d34e1775694842d6aaf29613b9464cdfee98bb0469591caf6621ccfc7", + "items": [ + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 10, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6479084, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 52230747, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 61220873, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 40531921, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 52395493, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 41703333, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 51422750, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 47089543, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 45068246, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 53909540, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 47103755, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 42691999, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43426956, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45354917, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 52928085, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 58198001, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 42748458, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 38774748, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45982915, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 40723587, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "2afa7d7f8bf7dd8ddc0e2e91a7e1c73f700923d47b0d5a360c58fc64a9410947", + "plan": "5c33307489e7bd2408eeb5e8b32fa531910be8f85110ba019ed7ec744e0720e8", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44723994, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44647081, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43070208, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 31275833, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37469959, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43129412, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 35792209, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34560621, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43916589, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36506921, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42734249, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37340375, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36052291, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6619833, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 31980213, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41404000, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 37781633, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40846002, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44182749, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39518578, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45672497, + "stmt_duration_count": 138 + } + ] + }, + { + "sql": "c811948ec4be34d1768662c6cd5b28a5346a5c0b5dc1a5067b17c788e74f6be7", + "plan": "9b74c09b6660ef6a2ecc8f1ccc4e73193b145b58b880a2af6a0acc4db72f8657", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 35824797, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42881793, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42574504, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40306459, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41431461, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43961042, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43597869, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 38015623, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39918576, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39778790, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 43934420, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 48029210, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40078877, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 48914249, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42305041, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39717462, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41780413, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45470125, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4663541, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 43457037, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39807125, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41252671, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36706914, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "b35a74757b53d6940cb5701a7cf311638d7089faf177655ddf3c43b1132a58e4", + "plan": "3c60f04b516aa698491c537c907baaea1ba668a987c0d9783767d3cf9e8315a1", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 53254667, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 50635795, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 50394089, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44814747, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46969673, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 55501576, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 52679672, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43539744, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47981996, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 42140996, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 50384958, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 40801751, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 49828374, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 40164801, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 52041712, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6589709, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 49032996, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 47019791, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41720921, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 48232588, + "stmt_duration_count": 119 + } + ] + }, + { + "sql": "af4d5dd290252c61e1c684d2fc89060924bc1fddf823c77f1614dadc5fd736a3", + "plan": "9e497a15a858fb12dac976aa47fedc36e9948b626a6f484d44953ea28e2b789e", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 50539621, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43953419, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51995671, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43222996, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46539497, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 42003203, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 47482582, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42355995, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42033294, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44405088, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 45068329, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 39573541, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 54410090, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 46316957, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42959209, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 7, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7 + }, + "stmt_duration_sum_ns": 3679125, + "stmt_duration_count": 7 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 48162830, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48399623, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 44488000, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 48757000, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 52646748, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 50022876, + "stmt_duration_count": 129 + } + ] + }, + { + "sql": "8bed7ed3615587335401b481b00f6586556890812fe5e6bece4864a8c27dd8b1", + "plan": "d0f6d51de8bdfb2f260f710536d0c243d93e0a0c2da2d05cb3dcb9b3a781cd56", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45655382, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40249042, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 48987288, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41677754, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46629664, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43590288, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38092422, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46638703, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33727418, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 32005374, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 41047868, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41508291, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35840046, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45487876, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 21, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 21 + }, + "stmt_duration_sum_ns": 10542709, + "stmt_duration_count": 21 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43553996, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39713958, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38292166, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40054248, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37761199, + "stmt_duration_count": 117 + } + ] + }, + { + "sql": "8c4d1613c92c0817a36800e5cacaf852ae235be1ae983897cac4f7aa8ccce178", + "plan": "b22aeff6f34713b21e61fd007bdd55cc7420e1443c205a8bfc618d9b1f67e6c3", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 43617707, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41047670, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42699626, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 47170745, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41394709, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 47312131, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 41730294, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39923534, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 38047417, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 47752332, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 47120505, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 57752330, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 5, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 5 + }, + "stmt_duration_sum_ns": 3079209, + "stmt_duration_count": 5 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 42548623, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 41834250, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40361787, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45557414, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 38445507, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 43754953, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "d1266e4bfd50d7d786ff711950b2781d22a5461fbfdaf0067257a4f9bcbbcce1", + "plan": "3dfc8aa95d47d421c377e34c48cf517126ada77700bba31e889bef3612052fdb", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 47713831, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 33693965, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35113337, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41645832, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 51788876, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39063992, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 43552877, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37676749, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37347164, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37899919, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39702255, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38941460, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43217382, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 3019334, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38552708, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 30794079, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45540831, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43993254, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 41918747, + "stmt_duration_count": 114 + } + ] + }, + { + "sql": "672c1329813057a8b67284fa14f8a52b9cb4c5386f7a8ea1dee1b5f2959f7f2a", + "plan": "b8cd41c6804d9c68e274957191f4fee5fec3ceea8ebb2d8cd8047c7d66fbacc7", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44397830, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 40124585, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 44039236, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38597376, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39760993, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44556833, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 38915126, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36574373, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39240330, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 49520123, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43884452, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38412756, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41011835, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41202663, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36101166, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6699584, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37358207, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42668462, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38086042, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 36515340, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41259629, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39132257, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36614540, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49220710, + "stmt_duration_count": 137 + } + ] + }, + { + "sql": "cff0c9211db0baaf3563f35c0f29ad2957ba6cc347075c4c5976792511049d91", + "plan": "e1b767a818e96f2aca224b28237e8ffbfdd63b9a59a2e3a26d1fa37e66903aca", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 48972373, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47584085, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40429042, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41326333, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46078377, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 51513369, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44903630, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45488039, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41785166, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46586752, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45448586, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43060215, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48895921, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5849415, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41005083, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46774960, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 45130249, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47900835, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37793542, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 45275754, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 43711796, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39742206, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "48c905ec24def6bc893e3844433990654c4666044adc01db1e00e7ae97bd9470", + "plan": "321fba13ea40ef7659255b321c28ad975feaf1fa4a5f64232878b049d869a8ed", + "items": [ + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 30, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36969087, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37856503, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40059964, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 46828580, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 38189085, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38876835, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43483960, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 46130077, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40407712, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 35813210, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40573082, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44431587, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 48406627, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38125709, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38020621, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34109958, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37643590, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 6802293, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46066088, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 36791166, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39259292, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38126330, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36805200, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 39008334, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36855417, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "8d7234730cfd860b8975e125ea30fc58ea69fafbb5331ff5a81ee8408b14b8ce", + "plan": "c2481182ba4f14df08ef50d52402d6ac0c43ab578fec3a7d66b49642e32fea7f", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40217584, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36173542, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44008499, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42319790, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38859407, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39295954, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40653173, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43154869, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 52282546, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45329085, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 32808669, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38237544, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 48313712, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43622706, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 9, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9 + }, + "stmt_duration_sum_ns": 4081001, + "stmt_duration_count": 9 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 35565372, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 44935832, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39548783, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 44637670, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40259501, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 39976542, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34886667, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "3fc273f5be63150dd81d9b509fc4f6dd0e1cb73dd146bf6663d4a7fe3cba5d3b", + "plan": "91fb53c50082c3177f52a6dd73d9890ddb67c8952eef1939651b232b17c0f2eb", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42338541, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36591456, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39304592, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41394255, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 36116041, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 34601791, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40692785, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 49386880, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42137504, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 50424498, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43261580, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42025084, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42556496, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36047755, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44951334, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5663375, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39929997, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38563786, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39890628, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36393334, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45099956, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 50326912, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "05d5eb24203e0715a51a82617a84904bb84003083b2fe230bd40c776362a50a3", + "plan": "3897030d62803c49ae8a22c8e844759a5af15f8c4e5f816ad2d3fbcb3b01922c", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35533382, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36328500, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38109172, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 47627872, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36990419, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38690621, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37198423, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36680294, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 155, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 155 + }, + "stmt_duration_sum_ns": 47712454, + "stmt_duration_count": 155 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6622708, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 43352959, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37619964, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40950332, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41434129, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 34988379, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39547460, + "stmt_duration_count": 122 + } + ] + }, + { + "sql": "c51cfadba7b4e483aa7018e1fd21ae4488d6b24583a26a19694baa096cf7575c", + "plan": "da81354ac26f242f3c631004ff691889028e05fa7a5930377cf0a4455614fc0e", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41801624, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42589338, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43342169, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36302451, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44665379, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37915703, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40156874, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44380714, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36050458, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 34590463, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 34948201, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40528296, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 51390458, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38213871, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38692704, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 34377288, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46291379, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39908545, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 6938915, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41319834, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 35679213, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38479790, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38768783, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39897037, + "stmt_duration_count": 113 + } + ] + }, + { + "sql": "3d4886bdbba326748071fa508b87d7b796c5b469adbf041f4499c9ceda41c7bf", + "plan": "6787be0b5022436a4b07dc52740b194487579c4410f5255c3385b27e1a31f0e6", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45784744, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41589886, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 47900794, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41160367, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 46983170, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 39324749, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42558797, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 45454548, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37441125, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42012786, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42351579, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 8214293, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42039083, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42578293, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40270913, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 49645496, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41106298, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 37935002, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 46013592, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 37630168, + "stmt_duration_count": 103 + } + ] + }, + { + "sql": "bb335607c9436d6293fa5d5a3a90c17b84fa7e8646c2b4f19ba8d8ea2f0ca96e", + "plan": "b765e42344d57cd405a400bb1bf54d42e605aaff02058a6e4dd01f3dc6062ceb", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39705290, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41990712, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40476589, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38451924, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41389294, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41982214, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51568962, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44447126, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38248132, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44577955, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 40454377, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39751129, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 35944037, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 42780247, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40526921, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 19, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 19 + }, + "stmt_duration_sum_ns": 8314623, + "stmt_duration_count": 19 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41688376, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 40182417, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38749123, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 48074502, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46188046, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 33326289, + "stmt_duration_count": 98 + } + ] + }, + { + "sql": "a7a2e14cc037a137aae7273e9fdbc7a2230eee1f2e95d9e9a9afe472f2426a55", + "plan": "c388672fe3acca1d18b7efac362835375eab0a4ebd32265648e20b483ecd70b7", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 680542, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 609375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 845000, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 573417, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 834375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 641750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 679125, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 752833, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 867625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 561083, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "091aa9f6553bfd740b78a21b8145c157966abf01551aa4edd59e9bd2cf5998ef", + "plan": "ed4a7b58fbe08d62956dd7b430ef61021817b17af8241a1b7dac7de747b16c1c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 50244041, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 49589082, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 49523626, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 42702336, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 43834209, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 47604124, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 49052829, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 44890796, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 42132833, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 49756871, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 49356793, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 47543786, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 43809499, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 46580080, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49636171, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47338249, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 6432459, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 50493993, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 44752744, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 48155369, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 43350383, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 52565251, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 42015882, + "stmt_duration_count": 99 + } + ] + }, + { + "sql": "04d3cddf3b02d17a5a2ac36d6c132e12f05861c77b206b240fdca426183523b0", + "plan": "292cc15ff162a38383804786e73a098be2b653b2ba9602bf7eec7883c9a1ed82", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44291877, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39384089, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 47886377, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43815042, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 38330374, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40423037, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43095831, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37013375, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39886461, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39115419, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39876209, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 32425797, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 46742245, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45185504, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 22, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 22 + }, + "stmt_duration_sum_ns": 9105500, + "stmt_duration_count": 22 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37497380, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 33247584, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 49610547, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 38105633, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45893083, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41650708, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 37868492, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "1ab6ccfe92d6cdac96ce87e41e7155d4b80301c72c570d9b44afd2e7b3e53ee6", + "plan": "48fb2007a42e056889d839713314513963cb31654e8513397d76328a6e5505c5", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 42552917, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 52172745, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 50997255, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 49366329, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 53399133, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46578371, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 56332126, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 45684417, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46784417, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 51658050, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 41670502, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 48954915, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 52340279, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 43624834, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 49711295, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 10276835, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 50225711, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 49323543, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 53942042, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 52257626, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 46116330, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 48867611, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 45230498, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "20c17c8ec30f23572e2d417b0e1dd486c08239c8bfe3c1e19c6b389230863630", + "plan": "98f5e2c47489283430c6af8392083c200939c1630c86fd7a18d213a791f2eba9", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 56303672, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44569913, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 52312546, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 41953544, + "stmt_duration_count": 93 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 48049761, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 48790583, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 43394621, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 49285624, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 44454007, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 48847460, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 53731618, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46523500, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 45658790, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 52215164, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 53247626, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 5793584, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 41991252, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 46335709, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 52050872, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 52521413, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 44642084, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "852f1e4f5ac14d75758d0e5d459461657284322b4812e4425a4000c2ecbea114", + "plan": "3d7cca541e4f1c6dc8a2ae825279ed197b740334bf3ac3b0edb7aa6c312b7e2e", + "items": [ + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 30, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 34202499, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 30, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 40030796, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43933463, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37149165, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36214667, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38132124, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40468204, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43785494, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 35457666, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44051118, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 44681789, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41168714, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 44653338, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 42936456, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38269037, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43350124, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 41610835, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 5849583, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38530040, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38764967, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 41457791, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 47241166, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40539584, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 47195290, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41553840, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "a7b74e2989eaf1cda1f51c92087ec31faebe9253fa06362179edf9a9ccb3927d", + "plan": "cdfa3ce40b3e9f3c25f72d46b19e9d4618bb7647a548c876f43daf4f6d8e4862", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35613249, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 32145337, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 42016040, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39954498, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35028380, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 36696333, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 47623784, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 59375626, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43798295, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41572452, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42303507, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36703376, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42044957, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35043369, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40174416, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 7888042, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39001163, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 57452710, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45523959, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39160378, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35445378, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 34823246, + "stmt_duration_count": 98 + } + ] + }, + { + "sql": "42275a09fb0255538bb570d3a3d74f0656029b1409a5e6c8c64b61427c0eb69e", + "plan": "74c29434e93aa608ba078477c486739c891ea71301ff5203c9dcc8a93fa71f0c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 40711127, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 40749830, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 53915878, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48171545, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 49707713, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 57225040, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 57175997, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 45701538, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 53730203, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 44615410, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 50002337, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 49645954, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6434041, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 49740864, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 82, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 82 + }, + "stmt_duration_sum_ns": 35001000, + "stmt_duration_count": 82 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 46471332, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 54987754, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 39805087, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48712960, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 46525085, + "stmt_duration_count": 107 + } + ] + }, + { + "sql": "8da51d453ee5b90b55936b76618ba406ca881d32e32d6636a66bd9c5efe3b17c", + "plan": "39c099a9f4e0856c31c8c1297556243ea8541a32adb596654041a264717cf489", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44116997, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 42138467, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 42386546, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 42436202, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 31721709, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37867288, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 46328455, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41179592, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44597247, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46332907, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39805455, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35609297, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36727461, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34337627, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39591499, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7027041, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 49415002, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36874959, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43142126, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43962043, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 39048290, + "stmt_duration_count": 106 + } + ] + }, + { + "sql": "e86d2f7e398ca74df116559c85e8c3a7d18af009bcb8bf2ef3684f110d8eb1e7", + "plan": "1fde5704a33bb139d08aa6d9b97106cb1dfb2368d1c063f4c84dead3464f0e5b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6148293, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 8119251, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 6874457, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4419083, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4935167, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4945125, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5684749, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5096084, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6430209, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4909750, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6821499, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6264708, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6822457, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5381626, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5362794, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 7246375, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4404125, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 4733791, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 7481792, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 6657584, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 6892540, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5754501, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 6072873, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 7669209, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 8494709, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 5471957, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 5837084, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 6, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6 + }, + "stmt_duration_sum_ns": 7413458, + "stmt_duration_count": 6 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 6569751, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 12859585, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 7113501, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 6789666, + "stmt_duration_count": 8 + } + ] + }, + { + "sql": "cada1c21d8448dbd8b090d5573fe6ac7234ddcb4cb264ddc2d3aaac9330ee001", + "plan": "2ffa52ad1c7a47c32caa8f1977631f72044101cfb12345de0af73cc0e5c5cd4b", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37242580, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39305161, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44857080, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 42867410, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38273209, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 49746589, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37435833, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38827541, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44221829, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37734827, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36099210, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35222372, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43507168, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41572587, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39279297, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 34964335, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37442622, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 6411918, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42173915, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43329669, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43134627, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37547707, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42022622, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 95, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 95 + }, + "stmt_duration_sum_ns": 30768328, + "stmt_duration_count": 95 + } + ] + }, + { + "sql": "6ea2dab1bcf79070573ac26bb44e81023cb7e80e4790465d97d730b866fa464e", + "plan": "91b83637b90aff8b414dc0b99b05ee80e78aeeb61b78ca726e3e8126f45b80bc", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 47379376, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46616500, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45393750, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 32352626, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36747574, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 34893993, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 36967702, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 44381170, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42702677, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40445084, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 36634289, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41051665, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44081169, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41522874, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 6693336, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42252572, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 50153249, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41650834, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40175914, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37096129, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 36392625, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44039664, + "stmt_duration_count": 133 + } + ] + }, + { + "sql": "f5abbd42733cd10f7c98902f7eabacef8d1255706dd4a44b46ed448543557884", + "plan": "7e384e4935547cf526e1f89c2395f5d1a7af3e70ba95098a212476ecdc7760fa", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44069290, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 34311211, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41995919, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44146831, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38393708, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44088661, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42240250, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 49723885, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39731339, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 44495786, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 42268749, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 44470213, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38692826, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39122626, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 8308291, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40165459, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33426459, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 48126788, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37808587, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41110420, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 46768039, + "stmt_duration_count": 130 + } + ] + }, + { + "sql": "7bfc77ae10c2544d411e1c14a54632f76ead0c0d754d0383d2f312ed7d94dbd9", + "plan": "1d319fba064aba744d971e020561d9079fed38e6e118ab915754923b2fc22b98", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40483665, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40505290, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42276623, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 36515826, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 38960914, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35820825, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 40540580, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42576252, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41258050, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40582535, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38336332, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40371660, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37550787, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43908790, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36579669, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 32598043, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 7407794, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39748540, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36915084, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 31871543, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37075663, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39741496, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "43e055b6c0b4a577ead7a7d5c720f3943c2559a01ced11b8acba82ee265c8155", + "plan": "70d490750cbba09d4bec0851767f47226864a13573a8c0eb0afba48e32cb33a9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43085716, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 43786710, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 46554953, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46986706, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41056909, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44728875, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44117119, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44418202, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48375300, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42884549, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44745051, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 50586174, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40460753, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43256295, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47673625, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42900709, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42359204, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 6839833, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 44364126, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43438587, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 49380829, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 47747955, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 42439792, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42536207, + "stmt_duration_count": 121 + } + ] + }, + { + "sql": "d7b30707090f6063fec3367640c015989d8fc4ad4c7303e59227f6e37c95f217", + "plan": "9873898d3359d84799fb3d3d1e6d65ea687948fe8b307db671f26a7e5711adba", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36105793, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41308251, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 40758076, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41926086, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43284326, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 57492712, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43511374, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 45193915, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 41798169, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40930412, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45696171, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44155332, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5144125, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44148206, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39881331, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 34627830, + "stmt_duration_count": 113 + } + ] + }, + { + "sql": "c96cd3fd0047b5fc6122154f4c02f68c0b8826be42bdaca30e4b80f3784fd84a", + "plan": "c139e3c90f60538ff0031c2df0286c8a2898736c7f4326faaf8c8ba982d74c8c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 44153626, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44232788, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44255118, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 51260668, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46146709, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 35811251, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41267457, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 38652623, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43990580, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43355668, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 82, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 82 + }, + "stmt_duration_sum_ns": 32840333, + "stmt_duration_count": 82 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39770130, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46098421, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 38864298, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 42079961, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 21, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 21 + }, + "stmt_duration_sum_ns": 11296627, + "stmt_duration_count": 21 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41940372, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42083125, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 48107292, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 44979587, + "stmt_duration_count": 122 + } + ] + }, + { + "sql": "8d02e584fc3699e33ffaf75d7e20367234c31498f959b5495bb9d070b26b18fc", + "plan": "4b94cddfe820769eba6adf8bd8e7a10fa581f565618efd0069a83819dbeb95ad", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36453545, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45762121, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38919919, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40990662, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40314716, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 48293211, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 91, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 91 + }, + "stmt_duration_sum_ns": 30880539, + "stmt_duration_count": 91 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 34432593, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43328831, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37361876, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 149, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 149 + }, + "stmt_duration_sum_ns": 50376335, + "stmt_duration_count": 149 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42319243, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 38112667, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 38610748, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45709040, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4831457, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 39612417, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43261581, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39233499, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40037288, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41877723, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37848294, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 40271626, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "6731664d0eb38b61262410feb0797c348af1f1271640ff92e0fe2898ab3ce08a", + "plan": "250c11c2507f760d1df7a1263a1455b64fba6834c57a868d8af10ee8b9cf6162", + "items": [ + { + "timestamp_sec": 1709646924, + "cpu_time_ms": 30, + "stmt_exec_count": 0, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 44728876, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 46627213, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41403706, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 37290290, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38866621, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41686714, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37406000, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 46562710, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 44261418, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41860541, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39500250, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40577499, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43472831, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 47796337, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 41063501, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 35807501, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 47914758, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 22, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 22 + }, + "stmt_duration_sum_ns": 9869788, + "stmt_duration_count": 22 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38882874, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 44385794, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42124540, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 35803748, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 47259456, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 47749331, + "stmt_duration_count": 134 + } + ] + }, + { + "sql": "ff9cb6e071f14d1389862b8d80c324a4a64fa82c88172c9bbae60037b9b97952", + "plan": "de146e94f540c04a477d900b90875fc3b4c4fab2aa95e2b4a16279f329250996", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41126587, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39001461, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45737464, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42872130, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 39619627, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43507250, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 34759712, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39784790, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40013497, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43354952, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 30992960, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 33774591, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 40283907, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38297585, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41332795, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45445204, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 40152173, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 21, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 21 + }, + "stmt_duration_sum_ns": 9530336, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38252117, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38222333, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41866455, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42183616, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44015088, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42136165, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "27b0c9b763ba4cf6de7dfe4ea040178d5cd1cce48c4cea808a7546ef9e967137", + "plan": "36a6a1cbfedf976e87f14bc2a9b7f3dbc52335c05613b8295f2267c24540178b", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 715209, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 861041, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 760583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 16559042, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 718291, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1019625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 824041, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1206625, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 976083, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 880917, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1382417, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "6f430c8d778ca9085f7867413145587ecc25b9c29a5a4ca925d5857802d16f14", + "plan": "ad838bf912cea5c396a3d67c092eeecac73e081782aca20aa21326a76c935bb6", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 50376749, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42709667, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 35456708, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43455710, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49264468, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 48620701, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46607541, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 48674745, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 47227086, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 48078170, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 50077166, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 44435581, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44874791, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6066502, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 86, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 86 + }, + "stmt_duration_sum_ns": 33833243, + "stmt_duration_count": 86 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 42209540, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44233253, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39998163, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42110296, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 35005082, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 40802959, + "stmt_duration_count": 109 + } + ] + }, + { + "sql": "0efdbc48bef6a4aa26e3612502e57e280a9f8fd62fbafc57ffc20b5adcd347cd", + "plan": "17c5bf85bddcacea0e562ef4957f23ba56c20321ffaaf8905aed117c38ab5f08", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42819005, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32129005, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38395792, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 32004417, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42960206, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40123000, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38133082, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 40642669, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 95, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 95 + }, + "stmt_duration_sum_ns": 33580909, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40970379, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39966415, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 49971752, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 42436077, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 33262425, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39697624, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 36026836, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 36567499, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36820043, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 5733875, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38757882, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39958411, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37570040, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 38761204, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37767255, + "stmt_duration_count": 115 + } + ] + }, + { + "sql": "2d593ad58b9c996dabcc20a71ef13a139a38bf7b31ce02d701fbd9b098143df1", + "plan": "4b09c887193f34e16b633755578726a9a4929c8d052e21e16b06b7c37e034a2d", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 43132545, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 54509879, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 46617831, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 54384587, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 57135249, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 54137918, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 44608825, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 48082961, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 52339839, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 46719629, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 48962419, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 56065956, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 47717000, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 50744837, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 47120042, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 47685250, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 20, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 20 + }, + "stmt_duration_sum_ns": 10289417, + "stmt_duration_count": 20 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 49349797, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 48976291, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 56736620, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 54151872, + "stmt_duration_count": 127 + } + ] + }, + { + "sql": "f57844b674c567c3056bd9ce9731b6c5c8957565494056aef383f49a5a8a3047", + "plan": "18e5be518e7123667e632965b4d111bd6cbf46888dc1959b94ff90780ecfd5d2", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 48157287, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 54307462, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 41230043, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 41964794, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 46191543, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 45170334, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 43803918, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 48346795, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 41962669, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 51631920, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 53941666, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 55358330, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 55061246, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 152, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 152 + }, + "stmt_duration_sum_ns": 59993793, + "stmt_duration_count": 152 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7766458, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 48119132, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 45056455, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 49146999, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 46745164, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 51127828, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "b0403d4728f8d1f835a9afa9d550723511590a41e476f3b5b98c861c18b7df35", + "plan": "c89524e89a70501ab908aefa1ee977bb73c2aa4cd2baf7994c84055bc8a546c1", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45514836, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41839001, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 41275082, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43767333, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42451294, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 47480334, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37777121, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38183834, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45621456, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 46347709, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 49206238, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42207166, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37275674, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41649205, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37956422, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44061094, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39307999, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 39817172, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 10, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10 + }, + "stmt_duration_sum_ns": 4087749, + "stmt_duration_count": 10 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 39903742, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38750086, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43355922, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39419542, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42304701, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 40982044, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 37434790, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39739627, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "59fe77df533018403a738d3e824c5e7bdbb590d92c3e35a122cea44a88778667", + "plan": "8dfa88f42e05745876e67af57cecec0bd93b561645d6d01fab967eea72411236", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 41569254, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41888966, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40299249, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 49018463, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38401418, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 50975169, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37922794, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 41353081, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42305169, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 35599423, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 33749707, + "stmt_duration_count": 95 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 41754171, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43618925, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 32549575, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39476829, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 6331625, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 43084205, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39912499, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40966258, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 44708416, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 39045540, + "stmt_duration_count": 108 + } + ] + }, + { + "sql": "6d7b7abde6aa01705ba3d944b5686a24babd982ceb92e7f88803b7363eb7857e", + "plan": "dc917e260b0afedef980966e489b3cee6653a361f60c1ff4a770c7bdb7fd3249", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 46057004, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 45806504, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40413581, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 34146210, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 43656077, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 34119085, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40574340, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38919296, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 34206041, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39102410, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45938376, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39032588, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 39363832, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42414505, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43956834, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 16, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 16 + }, + "stmt_duration_sum_ns": 7213251, + "stmt_duration_count": 16 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 37011416, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46128919, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 36034625, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38331463, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 35267163, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46016414, + "stmt_duration_count": 137 + } + ] + }, + { + "sql": "970c748da2ee63faa2421772421a3daabedbffe84a032c78f7842e5eb4091741", + "plan": "5ce128e26bc6dab37e1f0f397131b8df0c086974a4f6a436a9544b34e6c5cb6c", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38656004, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35886622, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42385626, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 34190452, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 45985621, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40072832, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 42228875, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 88, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 88 + }, + "stmt_duration_sum_ns": 32965168, + "stmt_duration_count": 88 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 38061376, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41468957, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 39206585, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37376914, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46310161, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38433950, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 49540962, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37491671, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34053165, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37647502, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4793625, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40758047, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46780461, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 46319129, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 34281125, + "stmt_duration_count": 97 + } + ] + }, + { + "sql": "c83887c9dee750ed0cb2dbf264d6cf0f8bbef01bd0d452ab1680103e44d9f695", + "plan": "0609e34b8e7ad564b246b0039d7498a3aadd0c97d0115ff0c943209e654659d2", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 39670117, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45072997, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 40385294, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 45832738, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 45530209, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 45935419, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42317170, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36101995, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39207502, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42483329, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42065790, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39928463, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40037920, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38299632, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 8803668, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 33138165, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 45182708, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44631167, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40584835, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48000295, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 41407084, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "fd8e81307394a40283385e55c6b472baf65638ef049b5b9b5a7980df7d744e75", + "plan": "c3b3850dc9448033f2c96b38f2990fb22b5c5c0d6bb21c99c2bdc86ae455f96d", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40391959, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 37869996, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 33785751, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45148381, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 145, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 145 + }, + "stmt_duration_sum_ns": 47456159, + "stmt_duration_count": 145 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39925169, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 42077760, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 38896828, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40601796, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40158752, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39939622, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41379751, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43380835, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37661296, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41021743, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42304703, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42170461, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39358663, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38893044, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38703245, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40288077, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37544291, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41604457, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "d23e435933dda9776898af5372da4a8170c81cb971ccfe903e9e49028f7b1e47", + "plan": "2b9fc5914b63dfc7de696a63eb7b821501cc7ee54fa4ce9a8cfe8d08f31e938d", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42610664, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42958379, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38126084, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 39495539, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 45096038, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41742594, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 46535415, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 50758536, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40852756, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45067872, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40363080, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 46710331, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 41155967, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38054961, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37781120, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 42040545, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40400168, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 6402542, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 42660669, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 38527922, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39355380, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "2bf90d7e27f0a09b65afd21b182a505411647e7d4c5b836378472b8df87598e5", + "plan": "0d2852ebbcb13a5bb5a8663a999f0421bca35656083282460ba78ec52a968dd4", + "items": [ + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 30, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45755844, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 48777211, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36283713, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40416080, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 40189960, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 47648254, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 35336174, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 44922577, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 41607586, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 44690077, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40554924, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 44123090, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 47154997, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37522581, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 43378591, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 39009959, + "stmt_duration_count": 105 + } + ] + }, + { + "sql": "9ba4af8d9d3e66b850b153c9a73ab364949448946e5ce2d6f3ea9c77f2666979", + "plan": "28fdb0353b189fcc5034ccf5428510d99dd8217a014eb2c760a6fbbd6edb91b5", + "items": [ + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43864334, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 43810291, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45065118, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 47204506, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 43261834, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43498210, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 47150421, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 50593044, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 45601213, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 47547866, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 47036675, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45394249, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 43701376, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 43026373, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43374164, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 8108917, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 51732546, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 44405798, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 46837548, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 41412621, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 47578713, + "stmt_duration_count": 132 + } + ] + }, + { + "sql": "203d3e4259334d67d6b379ae2450015137a019d795676f210a05f7ec7b629808", + "plan": "71686276fe63f11c09538c48271898a1300edf4df18bff5bd539329d9adf11c6", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 43201457, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 43401716, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37643454, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 39684200, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40727120, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41966879, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39407293, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40775834, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 37398789, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37002620, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 15, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 15 + }, + "stmt_duration_sum_ns": 7107210, + "stmt_duration_count": 15 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44574586, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 41067041, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38987627, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 33405627, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40122413, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43367998, + "stmt_duration_count": 134 + } + ] + }, + { + "sql": "361d6da01aedd622fd87dee9b8c214489b31e1e372347a6a88a4cd48ccfd7f48", + "plan": "5371e02eb723df07fe6cf2424fb7b8273e6565c8381c08f606ff9d1e0a78bba5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 39343246, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37006460, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43705286, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 67023038, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38939590, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46686959, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 39742120, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43482451, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37282248, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36172494, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43736199, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 44540955, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 42021286, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 7245793, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 42788753, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 48372162, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 47398841, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 40572842, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43336202, + "stmt_duration_count": 128 + } + ] + }, + { + "sql": "743ec15386749f9815ecf851d6003df69846fe2911729ab1bea5c77cdcf10013", + "plan": "a7ca65ce801e6334a10cc3e2391c2a7f28abe1791c27559e822aed6c50a4fad5", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 44062879, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 38097342, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42623082, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35974046, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40237920, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 44239504, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 44540166, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37230547, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 93, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 93 + }, + "stmt_duration_sum_ns": 33109413, + "stmt_duration_count": 93 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 34850921, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 36464004, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39223490, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43338620, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 43423460, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 4900124, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40714834, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 38714666, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45974703, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43404498, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 36980330, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42821336, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "7f9b737a7c4b7053135c82d085707a5d7a91825001ae9a01e527780fd29b4379", + "plan": "50e9fdc991f4aad8962aae99b2fc1806f3221fb9b6530842cfb48c9ba290f823", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 36246210, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45539374, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 33438041, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 41928835, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 146, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 146 + }, + "stmt_duration_sum_ns": 45095082, + "stmt_duration_count": 146 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45410006, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40803743, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 44335378, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39925092, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38956162, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 46594538, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41261664, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 38923598, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5288293, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45693787, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40480455, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 38440920, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40014961, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 82, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 82 + }, + "stmt_duration_sum_ns": 29878420, + "stmt_duration_count": 82 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 37263382, + "stmt_duration_count": 111 + } + ] + }, + { + "sql": "8b9c68b0b267d05eff257aecbefb4ce9cea4983fec60e81322cfd2d8ddfa8741", + "plan": "146c7e875687c50a33cfa938c67982aef40e526f7db4534ec186f17e3f1e00c4", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35133167, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42731667, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42720080, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 36013335, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37980491, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 43369371, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 41630463, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 46067084, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41583416, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 50464624, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 40537127, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 38206544, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 45663170, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 39829916, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41592830, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40084832, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 43302743, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37559837, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 4337752, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 34865248, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43312882, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41574741, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 32388462, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 43221371, + "stmt_duration_count": 116 + } + ] + }, + { + "sql": "9d5a0f1a8c1c0e1fd5f0955da80b305eae920a2ab897319c6d2d8de5d890bedc", + "plan": "c68b37cb6ba3074a6ee32e9b33a56d8b18aea208db31fb6e13471a1db7195d65", + "items": [ + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1785833, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "ea4709893ffb8edc8d58191ccbd93c4c4fdfc1d20ebbcc7f48707df328d6dbb2", + "plan": "42d48b331dfe53300ddea68d4217dc467244bd898f80f10a913f2104d26d4989", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1401667, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1312750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1576792, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1346375, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1562167, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1282250, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1512750, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1448583, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1653292, + "stmt_duration_count": 1 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 1, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 1 + }, + "stmt_duration_sum_ns": 1279417, + "stmt_duration_count": 1 + } + ] + }, + { + "sql": "efbf0dfec332882fca5aba292a03f325ef855ebe1ca84f95f3ed81517804ac27", + "plan": "77f7f1343d561fae5f4a9c382d14e48ceb834c8f6c4bf2dea39a5f0b869a6127", + "items": [ + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 40, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45104665, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36432662, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 38065294, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 36011706, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 39917747, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 34901377, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 32607882, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 94, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 94 + }, + "stmt_duration_sum_ns": 47897455, + "stmt_duration_count": 94 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39798706, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 46864291, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 41180043, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39596952, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 39279669, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 138, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 138 + }, + "stmt_duration_sum_ns": 43394793, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 7543752, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 39350709, + "stmt_duration_count": 109 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 118, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 118 + }, + "stmt_duration_sum_ns": 37373004, + "stmt_duration_count": 118 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41386212, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 44154122, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 46493204, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40930292, + "stmt_duration_count": 121 + } + ] + }, + { + "sql": "137849b8dbd52a6aa3a6ef3f206bed655349ea62c231470a1cb69175228b373e", + "plan": "069bc7f7c950a5e23dff680c7f8117f377ad3e131b7db27933b4cb2f4e21b5ec", + "items": [ + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 30, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40396957, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 109, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 109 + }, + "stmt_duration_sum_ns": 37871464, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 44540960, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36715875, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37294376, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 40734707, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 59065126, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 37654796, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 43938918, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 30537915, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 42703502, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41559707, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40370462, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 116 + }, + "stmt_duration_sum_ns": 36300625, + "stmt_duration_count": 116 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 38645586, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 33273210, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 8, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8 + }, + "stmt_duration_sum_ns": 4627333, + "stmt_duration_count": 8 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37594880, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 39542419, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 45372298, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 43373081, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 35488124, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 37220247, + "stmt_duration_count": 115 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 143, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 143 + }, + "stmt_duration_sum_ns": 49336166, + "stmt_duration_count": 143 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 38995168, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39947292, + "stmt_duration_count": 124 + } + ] + }, + { + "sql": "b543712c0a1a962497ed5135e7b48ab9feb4c3686dd90dd68ebcd74e4d3f5f3e", + "plan": "cd5864c1f2f62959fa38988d63d5c187e67ef53795343ffac1c5cb60a3d10fab", + "items": [ + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41304124, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 36007716, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37841539, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 37099585, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 40676124, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 38596501, + "stmt_duration_count": 101 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 45473707, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43270878, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40056297, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 115, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 115 + }, + "stmt_duration_sum_ns": 35766588, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40714291, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41887996, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 13, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 13 + }, + "stmt_duration_sum_ns": 5241706, + "stmt_duration_count": 13 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37921001, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 103, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 103 + }, + "stmt_duration_sum_ns": 35004250, + "stmt_duration_count": 103 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41978004, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 136, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 136 + }, + "stmt_duration_sum_ns": 45198620, + "stmt_duration_count": 136 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39894753, + "stmt_duration_count": 120 + } + ] + }, + { + "sql": "3acbc9ea4c0821249a95ec7b2d733fed7f88bd1415288e9f024f5cfa7090ef05", + "plan": "32f6fe6bc30c0a8f7dfd688173726c2a93a448e93e5893a750637e16d54892c9", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46621291, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 40399583, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 46558448, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 45645461, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 45783030, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 51449496, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 40348297, + "stmt_duration_count": 104 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 43715169, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 42926296, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 98, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 98 + }, + "stmt_duration_sum_ns": 37410456, + "stmt_duration_count": 98 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 46588657, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 52768876, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 48921418, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 41376668, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 43182041, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42362668, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 39806378, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 48292665, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 14, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 14 + }, + "stmt_duration_sum_ns": 5835834, + "stmt_duration_count": 14 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 43347128, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 45584039, + "stmt_duration_count": 102 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 47843587, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 47044252, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 106, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 106 + }, + "stmt_duration_sum_ns": 38860334, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 96, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 96 + }, + "stmt_duration_sum_ns": 36480704, + "stmt_duration_count": 96 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 101, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 101 + }, + "stmt_duration_sum_ns": 40678082, + "stmt_duration_count": 101 + } + ] + }, + { + "sql": "38547a89c59388b08e615eef27c4493dfc20e28abbe3067a48b83bfdfabfa09a", + "plan": "e1f72517d78132094a511badcdffb133338353bf2facba85c078669e7096fc41", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40841164, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 99, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 99 + }, + "stmt_duration_sum_ns": 32474628, + "stmt_duration_count": 99 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 40800299, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 40115876, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 42068131, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42104173, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 35564041, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 54625618, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 38176412, + "stmt_duration_count": 110 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 130, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 130 + }, + "stmt_duration_sum_ns": 41502168, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 151, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 151 + }, + "stmt_duration_sum_ns": 46682750, + "stmt_duration_count": 151 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37200916, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 141, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 141 + }, + "stmt_duration_sum_ns": 46282669, + "stmt_duration_count": 141 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 140, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 140 + }, + "stmt_duration_sum_ns": 46080922, + "stmt_duration_count": 140 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 40492038, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 37621785, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 41159291, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 18, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 18 + }, + "stmt_duration_sum_ns": 8795336, + "stmt_duration_count": 18 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 39058505, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39804335, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 153, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 153 + }, + "stmt_duration_sum_ns": 50857717, + "stmt_duration_count": 153 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39252335, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 32884371, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 34581834, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 43427630, + "stmt_duration_count": 132 + } + ] + }, + { + "sql": "dd8e923753c67ee00941d41c2200e15983d39a18bc80a7c73fce4ca35596cee9", + "plan": "8dc92f66553b89e526ddc08a9b977f48fe8f0fd8ed97985c97dd509bdde75049", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 39900918, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43604583, + "stmt_duration_count": 130 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40639084, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 112, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 112 + }, + "stmt_duration_sum_ns": 35606200, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 43023377, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 41215461, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37855335, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 0, + "stmt_exec_count": 125, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 125 + }, + "stmt_duration_sum_ns": 40843082, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 37371707, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 40935957, + "stmt_duration_count": 125 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 37632832, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 44624541, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 42947494, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 129, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 129 + }, + "stmt_duration_sum_ns": 42459001, + "stmt_duration_count": 129 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 42851039, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 39474334, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 11, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11 + }, + "stmt_duration_sum_ns": 5741335, + "stmt_duration_count": 11 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37999875, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 43462037, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 147, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 147 + }, + "stmt_duration_sum_ns": 46083579, + "stmt_duration_count": 147 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 104, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 104 + }, + "stmt_duration_sum_ns": 36876000, + "stmt_duration_count": 104 + } + ] + }, + { + "sql": "1c94769f00609e9a7f2e65fe5910a9f20a3683ef18822dc957bcfc1fe2fee9de", + "plan": "9f71d5bcd51705baac857d807cdd741011df073e8794bc72eb13d1e13d56557d", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 45822336, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 121, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 121 + }, + "stmt_duration_sum_ns": 42715425, + "stmt_duration_count": 121 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 35478702, + "stmt_duration_count": 105 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 150, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 150 + }, + "stmt_duration_sum_ns": 48846455, + "stmt_duration_count": 150 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 49665045, + "stmt_duration_count": 138 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43557628, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 40978500, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 0, + "stmt_exec_count": 134, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 134 + }, + "stmt_duration_sum_ns": 50813958, + "stmt_duration_count": 134 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 53023130, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 108, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 108 + }, + "stmt_duration_sum_ns": 37968878, + "stmt_duration_count": 108 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 144, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 144 + }, + "stmt_duration_sum_ns": 47621422, + "stmt_duration_count": 144 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 39234255, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 117, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 117 + }, + "stmt_duration_sum_ns": 42309333, + "stmt_duration_count": 117 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 45456800, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 91, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 91 + }, + "stmt_duration_sum_ns": 33387749, + "stmt_duration_count": 91 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 48231708, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 148, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 148 + }, + "stmt_duration_sum_ns": 55852328, + "stmt_duration_count": 148 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5562792, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 39200378, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 44753128, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 45129502, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 124, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 124 + }, + "stmt_duration_sum_ns": 42109089, + "stmt_duration_count": 124 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 46442082, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 43817837, + "stmt_duration_count": 126 + } + ] + }, + { + "sql": "862c6d0a449412902f1b61b9c596f2acf8598e325c506caf41160c0816254f8a", + "plan": "b0789838de5d045c90aa9bd9074caa64e64bba681c6cd925cde2147603d4657b", + "items": [ + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 42743668, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 127, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 127 + }, + "stmt_duration_sum_ns": 38894408, + "stmt_duration_count": 127 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 37923877, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 39390085, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 41850912, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 132, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 132 + }, + "stmt_duration_sum_ns": 42818376, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 35124792, + "stmt_duration_count": 112 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 97, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 97 + }, + "stmt_duration_sum_ns": 34404707, + "stmt_duration_count": 97 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 37388505, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 0, + "stmt_exec_count": 110, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 110 + }, + "stmt_duration_sum_ns": 37649541, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 0, + "stmt_exec_count": 126, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 126 + }, + "stmt_duration_sum_ns": 41171335, + "stmt_duration_count": 126 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 139, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 139 + }, + "stmt_duration_sum_ns": 45791332, + "stmt_duration_count": 139 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 42453000, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 12, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 12 + }, + "stmt_duration_sum_ns": 5166041, + "stmt_duration_count": 12 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 105, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 105 + }, + "stmt_duration_sum_ns": 37003623, + "stmt_duration_count": 106 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 39050913, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 119, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 119 + }, + "stmt_duration_sum_ns": 38998927, + "stmt_duration_count": 119 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 46749201, + "stmt_duration_count": 132 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 0, + "stmt_exec_count": 102, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 102 + }, + "stmt_duration_sum_ns": 32800337, + "stmt_duration_count": 102 + } + ] + }, + { + "sql": "4f2697f070e8594ee121e06f2c579638ac1eb753af34804b7d1c5ae4425584a1", + "plan": "a8776060c6c49ca74109868006d1d3add594397a6d93e0e9fea232dcaba0abd0", + "items": [ + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 0, + "stmt_exec_count": 92, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 92 + }, + "stmt_duration_sum_ns": 30253041, + "stmt_duration_count": 92 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 37939043, + "stmt_duration_count": 123 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 0, + "stmt_exec_count": 114, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 114 + }, + "stmt_duration_sum_ns": 36362533, + "stmt_duration_count": 114 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 43484209, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646906, + "cpu_time_ms": 0, + "stmt_exec_count": 135, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 135 + }, + "stmt_duration_sum_ns": 41947253, + "stmt_duration_count": 135 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 0, + "stmt_exec_count": 120, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 120 + }, + "stmt_duration_sum_ns": 38687957, + "stmt_duration_count": 120 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 0, + "stmt_exec_count": 100, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 100 + }, + "stmt_duration_sum_ns": 36972330, + "stmt_duration_count": 100 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 0, + "stmt_exec_count": 131, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 131 + }, + "stmt_duration_sum_ns": 43779079, + "stmt_duration_count": 131 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 0, + "stmt_exec_count": 111, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 111 + }, + "stmt_duration_sum_ns": 39411713, + "stmt_duration_count": 111 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 0, + "stmt_exec_count": 107, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 107 + }, + "stmt_duration_sum_ns": 32384119, + "stmt_duration_count": 107 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 46154871, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 38834996, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 0, + "stmt_exec_count": 133, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 133 + }, + "stmt_duration_sum_ns": 42708580, + "stmt_duration_count": 133 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 0, + "stmt_exec_count": 142, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 142 + }, + "stmt_duration_sum_ns": 45514585, + "stmt_duration_count": 142 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 0, + "stmt_exec_count": 137, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 137 + }, + "stmt_duration_sum_ns": 45065456, + "stmt_duration_count": 137 + }, + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 0, + "stmt_exec_count": 17, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 17 + }, + "stmt_duration_sum_ns": 6864918, + "stmt_duration_count": 17 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 0, + "stmt_exec_count": 113, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 113 + }, + "stmt_duration_sum_ns": 42564493, + "stmt_duration_count": 113 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 41574785, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 0, + "stmt_exec_count": 122, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 122 + }, + "stmt_duration_sum_ns": 36485041, + "stmt_duration_count": 122 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 0, + "stmt_exec_count": 128, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 128 + }, + "stmt_duration_sum_ns": 43715708, + "stmt_duration_count": 128 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 0, + "stmt_exec_count": 123, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 123 + }, + "stmt_duration_sum_ns": 47403497, + "stmt_duration_count": 123 + } + ] + }, + { + "sql": "", + "plan": "", + "items": [ + { + "timestamp_sec": 1709646891, + "cpu_time_ms": 60, + "stmt_exec_count": 78, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 78 + }, + "stmt_duration_sum_ns": 37479464, + "stmt_duration_count": 79 + }, + { + "timestamp_sec": 1709646892, + "cpu_time_ms": 1120, + "stmt_exec_count": 10690, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10690 + }, + "stmt_duration_sum_ns": 3595851482, + "stmt_duration_count": 10685 + }, + { + "timestamp_sec": 1709646893, + "cpu_time_ms": 1330, + "stmt_exec_count": 11744, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 11744 + }, + "stmt_duration_sum_ns": 3890984966, + "stmt_duration_count": 11747 + }, + { + "timestamp_sec": 1709646894, + "cpu_time_ms": 690, + "stmt_exec_count": 6749, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6749 + }, + "stmt_duration_sum_ns": 2401461118, + "stmt_duration_count": 6750 + }, + { + "timestamp_sec": 1709646895, + "cpu_time_ms": 650, + "stmt_exec_count": 6753, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6753 + }, + "stmt_duration_sum_ns": 2317934678, + "stmt_duration_count": 6753 + }, + { + "timestamp_sec": 1709646896, + "cpu_time_ms": 890, + "stmt_exec_count": 8859, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8859 + }, + "stmt_duration_sum_ns": 3069623734, + "stmt_duration_count": 8861 + }, + { + "timestamp_sec": 1709646897, + "cpu_time_ms": 1090, + "stmt_exec_count": 10090, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10090 + }, + "stmt_duration_sum_ns": 3416433786, + "stmt_duration_count": 10086 + }, + { + "timestamp_sec": 1709646898, + "cpu_time_ms": 1130, + "stmt_exec_count": 9817, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9815 + }, + "stmt_duration_sum_ns": 3434933896, + "stmt_duration_count": 9813 + }, + { + "timestamp_sec": 1709646899, + "cpu_time_ms": 990, + "stmt_exec_count": 9521, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9522 + }, + "stmt_duration_sum_ns": 3299926744, + "stmt_duration_count": 9526 + }, + { + "timestamp_sec": 1709646900, + "cpu_time_ms": 1030, + "stmt_exec_count": 9047, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9047 + }, + "stmt_duration_sum_ns": 3150078828, + "stmt_duration_count": 9042 + }, + { + "timestamp_sec": 1709646901, + "cpu_time_ms": 900, + "stmt_exec_count": 7699, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7699 + }, + "stmt_duration_sum_ns": 2987894682, + "stmt_duration_count": 7697 + }, + { + "timestamp_sec": 1709646902, + "cpu_time_ms": 660, + "stmt_exec_count": 6201, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6201 + }, + "stmt_duration_sum_ns": 2368979380, + "stmt_duration_count": 6199 + }, + { + "timestamp_sec": 1709646903, + "cpu_time_ms": 780, + "stmt_exec_count": 6723, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6723 + }, + "stmt_duration_sum_ns": 2389902525, + "stmt_duration_count": 6721 + }, + { + "timestamp_sec": 1709646904, + "cpu_time_ms": 830, + "stmt_exec_count": 8709, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8709 + }, + "stmt_duration_sum_ns": 2932786754, + "stmt_duration_count": 8708 + }, + { + "timestamp_sec": 1709646905, + "cpu_time_ms": 1170, + "stmt_exec_count": 10745, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10745 + }, + "stmt_duration_sum_ns": 3616262718, + "stmt_duration_count": 10742 + }, + { + "timestamp_sec": 1709646907, + "cpu_time_ms": 1120, + "stmt_exec_count": 10504, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10504 + }, + "stmt_duration_sum_ns": 3540469385, + "stmt_duration_count": 10504 + }, + { + "timestamp_sec": 1709646908, + "cpu_time_ms": 930, + "stmt_exec_count": 8909, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8909 + }, + "stmt_duration_sum_ns": 2987152443, + "stmt_duration_count": 8907 + }, + { + "timestamp_sec": 1709646909, + "cpu_time_ms": 970, + "stmt_exec_count": 10320, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10320 + }, + "stmt_duration_sum_ns": 3498694412, + "stmt_duration_count": 10321 + }, + { + "timestamp_sec": 1709646910, + "cpu_time_ms": 660, + "stmt_exec_count": 6773, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 6773 + }, + "stmt_duration_sum_ns": 2262457329, + "stmt_duration_count": 6774 + }, + { + "timestamp_sec": 1709646911, + "cpu_time_ms": 1020, + "stmt_exec_count": 10273, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10273 + }, + "stmt_duration_sum_ns": 3439824536, + "stmt_duration_count": 10272 + }, + { + "timestamp_sec": 1709646912, + "cpu_time_ms": 1040, + "stmt_exec_count": 8929, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8929 + }, + "stmt_duration_sum_ns": 2973020364, + "stmt_duration_count": 8928 + }, + { + "timestamp_sec": 1709646913, + "cpu_time_ms": 850, + "stmt_exec_count": 8354, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8354 + }, + "stmt_duration_sum_ns": 2905702443, + "stmt_duration_count": 8352 + }, + { + "timestamp_sec": 1709646914, + "cpu_time_ms": 810, + "stmt_exec_count": 8427, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8428 + }, + "stmt_duration_sum_ns": 2786492238, + "stmt_duration_count": 8426 + }, + { + "timestamp_sec": 1709646915, + "cpu_time_ms": 900, + "stmt_exec_count": 8741, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 8741 + }, + "stmt_duration_sum_ns": 2996191902, + "stmt_duration_count": 8741 + }, + { + "timestamp_sec": 1709646916, + "cpu_time_ms": 720, + "stmt_exec_count": 7325, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7325 + }, + "stmt_duration_sum_ns": 2431377319, + "stmt_duration_count": 7326 + }, + { + "timestamp_sec": 1709646917, + "cpu_time_ms": 890, + "stmt_exec_count": 7937, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7937 + }, + "stmt_duration_sum_ns": 2943875468, + "stmt_duration_count": 7938 + }, + { + "timestamp_sec": 1709646918, + "cpu_time_ms": 770, + "stmt_exec_count": 7087, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7086 + }, + "stmt_duration_sum_ns": 2572981800, + "stmt_duration_count": 7087 + }, + { + "timestamp_sec": 1709646919, + "cpu_time_ms": 900, + "stmt_exec_count": 7116, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7116 + }, + "stmt_duration_sum_ns": 2745920734, + "stmt_duration_count": 7112 + }, + { + "timestamp_sec": 1709646920, + "cpu_time_ms": 970, + "stmt_exec_count": 9024, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9024 + }, + "stmt_duration_sum_ns": 3126199385, + "stmt_duration_count": 9022 + }, + { + "timestamp_sec": 1709646921, + "cpu_time_ms": 1280, + "stmt_exec_count": 10929, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 10929 + }, + "stmt_duration_sum_ns": 3726850707, + "stmt_duration_count": 10930 + }, + { + "timestamp_sec": 1709646922, + "cpu_time_ms": 1040, + "stmt_exec_count": 9579, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 9579 + }, + "stmt_duration_sum_ns": 3350359851, + "stmt_duration_count": 9577 + }, + { + "timestamp_sec": 1709646923, + "cpu_time_ms": 750, + "stmt_exec_count": 7573, + "stmt_kv_exec_count": { + "127.0.0.1:20160": 7573 + }, + "stmt_duration_sum_ns": 2596256445, + "stmt_duration_count": 7572 + }, + { + "timestamp_sec": 1709646924, + "cpu_time_ms": 1060, + "stmt_exec_count": 0, + "stmt_kv_exec_count": {}, + "stmt_duration_sum_ns": 0, + "stmt_duration_count": 0 + } + ] + } +] \ No newline at end of file diff --git a/extensions/topsql/src/upstream/tikv/mock_upstream.rs b/src/sources/topsql/upstream/tikv/mock_upstream.rs similarity index 86% rename from extensions/topsql/src/upstream/tikv/mock_upstream.rs rename to src/sources/topsql/upstream/tikv/mock_upstream.rs index 1ba2ffa..4f2891c 100644 --- a/extensions/topsql/src/upstream/tikv/mock_upstream.rs +++ b/src/sources/topsql/upstream/tikv/mock_upstream.rs @@ -9,12 +9,12 @@ use prost::Message; use tonic::transport::ServerTlsConfig; use tonic::{Request, Response, Status}; -use crate::upstream::tidb::proto::ResourceGroupTag; -use crate::upstream::tikv::proto::resource_metering_pub_sub_server::{ +use crate::sources::topsql::upstream::tidb::proto::ResourceGroupTag; +use crate::sources::topsql::upstream::tikv::proto::resource_metering_pub_sub_server::{ ResourceMeteringPubSub, ResourceMeteringPubSubServer, }; -use crate::upstream::tikv::proto::resource_usage_record::RecordOneof; -use crate::upstream::tikv::proto::{ +use crate::sources::topsql::upstream::tikv::proto::resource_usage_record::RecordOneof; +use crate::sources::topsql::upstream::tikv::proto::{ GroupTagRecord, GroupTagRecordItem, ResourceMeteringRequest, ResourceUsageRecord, }; diff --git a/extensions/topsql/src/upstream/tikv/mod.rs b/src/sources/topsql/upstream/tikv/mod.rs similarity index 67% rename from extensions/topsql/src/upstream/tikv/mod.rs rename to src/sources/topsql/upstream/tikv/mod.rs index fd9b449..ad7bb3e 100644 --- a/extensions/topsql/src/upstream/tikv/mod.rs +++ b/src/sources/topsql/upstream/tikv/mod.rs @@ -4,11 +4,14 @@ mod proto; #[cfg(test)] pub mod mock_upstream; +use std::time::Duration; + +use tonic::codec::CompressionEncoding; use tonic::transport::{Channel, Endpoint}; use tonic::{Status, Streaming}; -use crate::shutdown::ShutdownSubscriber; -use crate::upstream::{tls_proxy, Upstream}; +use crate::sources::topsql::shutdown::ShutdownSubscriber; +use crate::sources::topsql::upstream::{tls_proxy, Upstream}; pub struct TiKVUpstream; @@ -25,17 +28,23 @@ impl Upstream for TiKVUpstream { ) -> vector::Result { let endpoint = if tls_config.is_none() { Channel::from_shared(address.clone())? + .http2_keep_alive_interval(Duration::from_secs(300)) + .keep_alive_timeout(Duration::from_secs(10)) + .keep_alive_while_idle(true) } else { // do proxy let port = tls_proxy::tls_proxy(tls_config, &address, shutdown_subscriber).await?; Channel::from_shared(format!("http://127.0.0.1:{}", port))? + .http2_keep_alive_interval(Duration::from_secs(300)) + .keep_alive_timeout(Duration::from_secs(10)) + .keep_alive_while_idle(true) }; Ok(endpoint) } fn build_client(channel: Channel) -> Self::Client { - Self::Client::new(channel) + Self::Client::new(channel).accept_compressed(CompressionEncoding::Gzip) } async fn build_stream( diff --git a/src/sources/topsql/upstream/tikv/parser.rs b/src/sources/topsql/upstream/tikv/parser.rs new file mode 100644 index 0000000..05b1365 --- /dev/null +++ b/src/sources/topsql/upstream/tikv/parser.rs @@ -0,0 +1,455 @@ +use std::collections::{BTreeMap, HashMap}; + +use prost::Message; +use vector::event::LogEvent; + +use crate::sources::topsql::upstream::consts::{ + INSTANCE_TYPE_TIKV, KV_TAG_LABEL_INDEX, KV_TAG_LABEL_ROW, KV_TAG_LABEL_UNKNOWN, + METRIC_NAME_CPU_TIME_MS, METRIC_NAME_READ_KEYS, METRIC_NAME_WRITE_KEYS, +}; +use crate::sources::topsql::upstream::parser::{Buf, UpstreamEventParser}; +use crate::sources::topsql::upstream::tidb::proto::ResourceGroupTag; +use crate::sources::topsql::upstream::tikv::proto::resource_usage_record::RecordOneof; +use crate::sources::topsql::upstream::tikv::proto::{GroupTagRecord, GroupTagRecordItem, ResourceUsageRecord}; + +pub struct ResourceUsageRecordParser; + +impl UpstreamEventParser for ResourceUsageRecordParser { + type UpstreamEvent = ResourceUsageRecord; + + fn parse(response: Self::UpstreamEvent, instance: String) -> Vec { + match response.record_oneof { + Some(RecordOneof::Record(record)) => Self::parse_tikv_record(record, instance), + None => vec![], + } + } + + fn keep_top_n(responses: Vec, top_n: usize) -> Vec { + struct PerSecondDigest { + resource_group_tag: Vec, + cpu_time_ms: u32, + read_keys: u32, + write_keys: u32, + } + + let mut new_responses = vec![]; + let mut ts_others = BTreeMap::new(); + let mut ts_digests = BTreeMap::new(); + for response in responses { + if let Some(RecordOneof::Record(record)) = response.record_oneof { + let (sql_digest, _, _) = match Self::decode_tag(&record.resource_group_tag) { + Some(tag) => tag, + None => continue, + }; + if sql_digest.is_empty() { + for item in record.items { + ts_others.insert(item.timestamp_sec, item); + } + } else { + for item in &record.items { + let psd = PerSecondDigest { + resource_group_tag: record.resource_group_tag.clone(), + cpu_time_ms: item.cpu_time_ms, + read_keys: item.read_keys, + write_keys: item.write_keys, + }; + match ts_digests.get_mut(&item.timestamp_sec) { + None => { + ts_digests.insert(item.timestamp_sec, vec![psd]); + } + Some(v) => { + v.push(psd); + } + } + } + } + } else { + new_responses.push(response); + } + } + + for (ts, v) in &mut ts_digests { + if v.len() <= top_n { + continue; + } + v.sort_by(|psd1, psd2| psd2.cpu_time_ms.cmp(&psd1.cpu_time_ms)); + let evicted = v.split_at(top_n).1; + let mut others = GroupTagRecordItem::default(); + for e in evicted { + others.timestamp_sec = *ts; + others.cpu_time_ms += e.cpu_time_ms; + others.read_keys += e.read_keys; + others.write_keys += e.write_keys; + } + v.truncate(top_n); + match ts_others.get_mut(&ts) { + None => { + ts_others.insert(*ts, others); + } + Some(existed_others) => { + existed_others.cpu_time_ms += others.cpu_time_ms; + existed_others.read_keys += others.read_keys; + existed_others.write_keys += others.write_keys; + } + } + } + + let mut digest_items = HashMap::new(); + for (ts, v) in ts_digests { + for psd in v { + let item = GroupTagRecordItem { + timestamp_sec: ts, + cpu_time_ms: psd.cpu_time_ms, + read_keys: psd.read_keys, + write_keys: psd.write_keys, + }; + match digest_items.get_mut(&psd.resource_group_tag) { + None => { + digest_items.insert(psd.resource_group_tag, vec![item]); + } + Some(items) => { + items.push(item); + } + } + } + } + if !ts_others.is_empty() { + let others_k = Self::encode_tag(vec![], vec![], None); + digest_items.insert(others_k.clone(), ts_others.into_values().collect()); + } + + for (digest, items) in digest_items { + new_responses.push(ResourceUsageRecord { + record_oneof: Some(RecordOneof::Record(GroupTagRecord { + resource_group_tag: digest, + items: items, + })), + }) + } + new_responses + } + + // fn keep_top_n(responses: Vec, top_n: usize) -> Vec { + // let mut cpu_time_map = HashMap::new(); + // for response in &responses { + // if let Some(RecordOneof::Record(record)) = &response.record_oneof { + // let (sql_digest, _, _) = match Self::decode_tag(&record.resource_group_tag) { + // Some(tag) => tag, + // None => continue, + // }; + // if sql_digest.is_empty() { + // continue; // others + // } + // let cpu_time: u32 = record.items.iter().map(|i| i.cpu_time_ms).sum(); + // let v = cpu_time_map.get(&record.resource_group_tag).unwrap_or(&0); + // cpu_time_map.insert(record.resource_group_tag.clone(), v + cpu_time); + // } + // } + // let mut cpu_time_vec = cpu_time_map.into_iter().collect::, u32)>>(); + // cpu_time_vec.sort_by(|a, b| b.1.cmp(&a.1)); + // cpu_time_vec.truncate(top_n); + // let mut top_tag = HashSet::new(); + // for v in cpu_time_vec { + // top_tag.insert(v.0); + // } + + // let mut results = vec![]; + // let mut records_others = vec![]; + // for response in responses { + // match response.record_oneof { + // Some(RecordOneof::Record(record)) => { + // if top_tag.contains(&record.resource_group_tag) { + // results.push(ResourceUsageRecord { + // record_oneof: Some(RecordOneof::Record(record)), + // }); + // } else { + // records_others.push(record); + // } + // } + // _ => results.push(response), + // } + // } + + // let mut others_ts_item = BTreeMap::new(); + // for record in records_others { + // for item in record.items { + // match others_ts_item.get_mut(&item.timestamp_sec) { + // None => { + // others_ts_item.insert(item.timestamp_sec, item); + // } + // Some(i) => { + // i.cpu_time_ms += item.cpu_time_ms; + // i.read_keys += item.read_keys; + // i.write_keys += item.write_keys; + // } + // } + // } + // } + // results.push(ResourceUsageRecord { + // record_oneof: Some(RecordOneof::Record(GroupTagRecord { + // resource_group_tag: Self::encode_tag(vec![], vec![], None), + // items: others_ts_item.into_values().collect(), + // })), + // }); + + // results + // } + + fn downsampling(responses: &mut Vec, interval_sec: u32) { + if interval_sec <= 1 { + return; + } + let interval_sec = interval_sec as u64; + for response in responses { + if let Some(RecordOneof::Record(record)) = &mut response.record_oneof { + let mut new_items = BTreeMap::new(); + for item in &record.items { + let new_ts = + item.timestamp_sec + (interval_sec - item.timestamp_sec % interval_sec); + match new_items.get(&new_ts) { + None => { + let mut new_item = item.clone(); + new_item.timestamp_sec = new_ts; + new_items.insert(new_ts, new_item); + } + Some(existed_item) => { + let mut new_item = existed_item.clone(); + new_item.cpu_time_ms += item.cpu_time_ms; + new_item.read_keys += item.read_keys; + new_item.write_keys += item.write_keys; + new_items.insert(new_ts, new_item); + } + } + } + record.items = new_items.into_values().collect(); + } + } + } +} + +impl ResourceUsageRecordParser { + fn parse_tikv_record(record: GroupTagRecord, instance: String) -> Vec { + let decoded = Self::decode_tag(record.resource_group_tag.as_slice()); + if decoded.is_none() { + return vec![]; + } + + let mut logs = vec![]; + + let (sql_digest, plan_digest, tag_label) = decoded.unwrap(); + let mut buf = Buf::default(); + buf.instance(instance) + .instance_type(INSTANCE_TYPE_TIKV) + .sql_digest(sql_digest) + .plan_digest(plan_digest) + .tag_label(tag_label); + + macro_rules! append { + ($( ($label_name:expr, $item_name:tt), )* ) => { + $( + buf.label_name($label_name) + .points(record.items.iter().filter_map(|item| { + if item.$item_name > 0 { + Some((item.timestamp_sec, item.$item_name as f64)) + } else { + None + } + })); + if let Some(event) = buf.build_event() { + logs.push(event); + } + )* + }; + } + append!( + // cpu_time_ms + (METRIC_NAME_CPU_TIME_MS, cpu_time_ms), + // read_keys + (METRIC_NAME_READ_KEYS, read_keys), + // write_keys + (METRIC_NAME_WRITE_KEYS, write_keys), + ); + + logs + } + + fn decode_tag(tag: &[u8]) -> Option<(String, String, String)> { + match ResourceGroupTag::decode(tag) { + Ok(resource_tag) => { + if resource_tag.sql_digest.is_none() { + None + } else { + Some(( + hex::encode_upper(resource_tag.sql_digest.unwrap()), + hex::encode_upper(resource_tag.plan_digest.unwrap_or_default()), + match resource_tag.label { + Some(1) => KV_TAG_LABEL_ROW.to_owned(), + Some(2) => KV_TAG_LABEL_INDEX.to_owned(), + _ => KV_TAG_LABEL_UNKNOWN.to_owned(), + }, + )) + } + } + Err(error) => { + warn!(message = "Failed to decode resource tag", tag = %hex::encode(tag), %error); + None + } + } + } + + fn encode_tag(sql_digest: Vec, plan_digest: Vec, label: Option) -> Vec { + ResourceGroupTag::encode_to_vec(&ResourceGroupTag { + sql_digest: Some(sql_digest), + plan_digest: Some(plan_digest), + label: label, + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::sources::topsql::upstream::tikv::proto::GroupTagRecordItem; + + const MOCK_RECORDS: &'static str = include_str!("testdata/mock-records.json"); + + #[derive(serde::Deserialize, serde::Serialize)] + struct Record { + sql: String, + plan: String, + items: Vec, + } + + #[derive(serde::Deserialize, serde::Serialize)] + struct Item { + timestamp_sec: u64, + cpu_time_ms: u32, + read_keys: u32, + write_keys: u32, + } + + fn load_mock_records() -> Vec { + serde_json::from_str::>(MOCK_RECORDS) + .unwrap() + .into_iter() + .map(|r| ResourceUsageRecord { + record_oneof: Some(RecordOneof::Record(GroupTagRecord { + resource_group_tag: ResourceUsageRecordParser::encode_tag( + hex::decode(r.sql).unwrap(), + hex::decode(r.plan).unwrap(), + None, + ), + items: r + .items + .into_iter() + .map(|i| GroupTagRecordItem { + timestamp_sec: i.timestamp_sec, + cpu_time_ms: i.cpu_time_ms, + read_keys: i.read_keys, + write_keys: i.write_keys, + }) + .collect(), + })), + }) + .collect() + } + + #[test] + fn test_keep_top_n() { + let records = load_mock_records(); + let top_n = ResourceUsageRecordParser::keep_top_n(records, 10); + assert_eq!(top_n.len(), 11); + let mut top_cpu_time = vec![]; + let mut others_cpu_time = 0; + for response in top_n { + if let Some(RecordOneof::Record(record)) = response.record_oneof { + let cpu_time: u32 = record.items.iter().map(|i| i.cpu_time_ms).sum(); + match ResourceUsageRecordParser::decode_tag(&record.resource_group_tag) { + None => others_cpu_time = cpu_time, + Some((sql_digest, _, _)) => { + if sql_digest.is_empty() { + others_cpu_time = cpu_time; + } else { + top_cpu_time.push(cpu_time); + } + } + } + } + } + top_cpu_time.sort_by(|a, b| b.cmp(a)); + assert_eq!( + top_cpu_time, + [723, 646, 621, 619, 574, 551, 549, 545, 544, 529] + ); + assert_eq!(others_cpu_time, 65216); + } + + #[test] + fn test_downsampling() { + let mut records = load_mock_records(); + let mut items = vec![]; + for record in &records { + if let Some(RecordOneof::Record(record)) = &record.record_oneof { + if ResourceUsageRecordParser::decode_tag(&record.resource_group_tag) + .unwrap() + .0 + .is_empty() + { + items = record.items.clone(); + } + } + } + let mut timestamps: Vec = items.clone().into_iter().map(|i| i.timestamp_sec).collect(); + timestamps.sort(); + println!("{:?}", timestamps); + assert_eq!( + timestamps, // 00:03:31 ~ 00:03:59 + [ + 1709654611, 1709654612, 1709654613, 1709654614, 1709654615, 1709654616, 1709654617, + 1709654618, 1709654619, 1709654620, 1709654621, 1709654622, 1709654623, 1709654624, + 1709654625, 1709654626, 1709654627, 1709654628, 1709654629, 1709654630, 1709654631, + 1709654632, 1709654633, 1709654634, 1709654635, 1709654636, 1709654637, 1709654638, + 1709654639 + ] + ); + let mut sum_old = GroupTagRecordItem::default(); + for item in items { + sum_old.cpu_time_ms += item.cpu_time_ms; + sum_old.read_keys += item.read_keys; + sum_old.write_keys += item.write_keys; + } + + ResourceUsageRecordParser::downsampling(&mut records, 15); + + let mut items = vec![]; + for record in &records { + if let Some(RecordOneof::Record(record)) = &record.record_oneof { + if ResourceUsageRecordParser::decode_tag(&record.resource_group_tag) + .unwrap() + .0 + .is_empty() + { + items = record.items.clone(); + } + } + } + let timestamps: Vec = items.clone().into_iter().map(|i| i.timestamp_sec).collect(); + assert_eq!( + timestamps, + [ + 1709654625, // 00:03:45 + 1709654640, // 00:04:00 + ] + ); + let mut sum_new = GroupTagRecordItem::default(); + for item in items { + sum_new.cpu_time_ms += item.cpu_time_ms; + sum_new.read_keys += item.read_keys; + sum_new.write_keys += item.write_keys; + } + + assert_eq!(sum_old.cpu_time_ms, sum_new.cpu_time_ms); + assert_eq!(sum_old.read_keys, sum_new.read_keys); + assert_eq!(sum_old.write_keys, sum_new.write_keys); + } +} diff --git a/extensions/topsql/src/upstream/tikv/proto.rs b/src/sources/topsql/upstream/tikv/proto.rs similarity index 81% rename from extensions/topsql/src/upstream/tikv/proto.rs rename to src/sources/topsql/upstream/tikv/proto.rs index 1829641..26239cd 100644 --- a/extensions/topsql/src/upstream/tikv/proto.rs +++ b/src/sources/topsql/upstream/tikv/proto.rs @@ -1,9 +1,10 @@ #![allow(clippy::clone_on_ref_ptr)] +#![allow(non_snake_case)] // To avoid: Function `ScalarWrapper` should have snake_case name, e.g. `scalar_wrapper` include!(concat!(env!("OUT_DIR"), "/resource_usage_agent.rs")); use resource_usage_record::RecordOneof; -use vector_core::ByteSizeOf; +use vector_lib::ByteSizeOf; impl ByteSizeOf for ResourceUsageRecord { fn allocated_bytes(&self) -> usize { diff --git a/src/sources/topsql/upstream/tikv/testdata/mock-records.json b/src/sources/topsql/upstream/tikv/testdata/mock-records.json new file mode 100644 index 0000000..7758888 --- /dev/null +++ b/src/sources/topsql/upstream/tikv/testdata/mock-records.json @@ -0,0 +1,15680 @@ +[ + { + "sql": "9FBD879ACB854423338802F0964B3E41D4DD6CB6A6AFBD5DB26C47466CB2D9F1", + "plan": "466E23FA8937FF33F1CDCB9105BA24B53AFC0C7A722ECE70EE3D99F464365DA7", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 30, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 19, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 25, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 31, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 16, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 28, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 31, + "read_keys": 113, + "write_keys": 0 + } + ] + }, + { + "sql": "70ADF8C4EF0C931345C4DC25AD1C00920351EC3E7E4C562D19BCC1342360A95C", + "plan": "0AB0BE2F1163A779904A211A84B40C5DC0C9732C765749ADEAFEA22ACBE262ED", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 14, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 25, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 16, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 25, + "read_keys": 127, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 29, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 15, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 12, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 40, + "write_keys": 0 + } + ] + }, + { + "sql": "1AB6CCFE92D6CDAC96CE87E41E7155D4B80301C72C570D9B44AFD2E7B3E53EE6", + "plan": "48FB2007A42E056889D839713314513963CB31654E8513397D76328A6E5505C5", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 34, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 16, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 27, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 21, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 8, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 50, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 15, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 23, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 19, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 34, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 19, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 24, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 24, + "read_keys": 67, + "write_keys": 0 + } + ] + }, + { + "sql": "9E8ADC1A1FD82B458E256B5FD12FA25F08DD0C27701BDC3A86D950F57A0EF3B8", + "plan": "9E72AD0A6816A7586F84B25BBF0BB3ACB7EB12154A209B857348CF417CD7EA6B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 32, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 31, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 12, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 9, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 50, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 11, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 42, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 11, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 26, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 26, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 65, + "read_keys": 120, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 26, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 16, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 26, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + } + ] + }, + { + "sql": "3027E715E2DCA2BF009975580D04ED44539FBA886004D93783C4E5C9C4166D10", + "plan": "7F27E6DFA214926ECA95E43786261CDE5CD998A70821A0AF654EE02BFF827EE9", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 16, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 34, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 21, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 40, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 21, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 68, + "read_keys": 112, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 20, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 25, + "read_keys": 59, + "write_keys": 0 + } + ] + }, + { + "sql": "7F9B737A7C4B7053135C82D085707A5D7A91825001AE9A01E527780FD29B4379", + "plan": "50E9FDC991F4AAD8962AAE99B2FC1806F3221FB9B6530842CFB48C9BA290F823", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 93, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 19, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 17, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 10, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 71, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 41, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 25, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 26, + "read_keys": 58, + "write_keys": 0 + } + ] + }, + { + "sql": "03198EB2FD2F834CE202952F51C65D19CB94B3CEE15C7806181B3B0D0F7F9E62", + "plan": "C2A0E2D24312057C1B302C9EB6519B198D30560FE175D404D526E994776FB37B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 28, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 27, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 18, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 10, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 32, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 63, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 11, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 16, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "F08912332AF45BDAD85AE47F0D43DC80A5242649E059346B6313B2096356407C", + "plan": "AEC844586A5E2AF62F7741EFA9BFF86876AD47A8CD388C6C7272ADD09FE6C7BC", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 24, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 24, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 13, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 11, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 31, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 13, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 35, + "write_keys": 0 + } + ] + }, + { + "sql": "BC49515F5BB152368AA1CCD39ECD089C35A34D1BEAB2876F3BB1E2AFFF255CD1", + "plan": "517E0B9AB093E9DBE787F0818C625E5089E8C3CB925B606C168536E983B16000", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 81, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 11, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 56, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 24, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 64, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 34, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 76, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 47, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 36, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 43, + "read_keys": 102, + "write_keys": 0 + } + ] + }, + { + "sql": "21ECE575BEC33AF7220B6FBE3463E5AB86B6EED43D3B03F63DD66D5EECD7A43D", + "plan": "FD53962EEBBE0583624B99A6E9918855625BB36DC309C7CCE5F30BC37EEF28B2", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 17, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 17, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 37, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 50, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 44, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 33, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 20, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 31, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 22, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 44, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 19, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 27, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 42, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 9, + "read_keys": 34, + "write_keys": 0 + } + ] + }, + { + "sql": "4F2697F070E8594EE121E06F2C579638AC1EB753AF34804B7D1C5AE4425584A1", + "plan": "A8776060C6C49CA74109868006D1D3ADD594397A6D93E0E9FEA232DCABA0ABD0", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 25, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 46, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 10, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 27, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 46, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 26, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 19, + "read_keys": 101, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 22, + "read_keys": 41, + "write_keys": 0 + } + ] + }, + { + "sql": "72C6028241D326A4A92C76E61D0086D0C0DF0521F2FDFE35C37338D6990EC260", + "plan": "0E2AD29E71EC0883321F0D1AD11B02F58535007E86497C3485C64504390C0F66", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 18, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 21, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 31, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 28, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 8, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 31, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 29, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 41, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "4E96C15DCFD7CACCE3C0F02AF1C523B90A6B630F7BE70D70261F8B38E08C9291", + "plan": "857C4890D8B953E7964574112ABCD588D668333D9D15891D334B5A739AE5A5CD", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 37, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 72, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 29, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 42, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 27, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 42, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 31, + "read_keys": 33, + "write_keys": 0 + } + ] + }, + { + "sql": "960C1C959085730CDBDC33265CB10F10F6C0C0207F3A544EE85AE89082333ABF", + "plan": "E2071812875179D95D518C9E08376BDA4D1F656D94F76696FE28C5B0A72B66B7", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 16, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 25, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 21, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 47, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 36, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 37, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 43, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 22, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 15, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 13, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 42, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 37, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 9, + "read_keys": 55, + "write_keys": 0 + } + ] + }, + { + "sql": "AC4F94C24B55B6B9EEFD4116DE44F115C2A3262DB4631F14C0F6E74DDC89E435", + "plan": "B35CE95B46F0738D6868A0D621AA838C51927E5110E65385449458A856464602", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 22, + "read_keys": 19, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 46, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 32, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 35, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 52, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 11, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 30, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 12, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 19, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 19, + "read_keys": 67, + "write_keys": 0 + } + ] + }, + { + "sql": "3AFB4B27D6B27F83CA74E2C84EF918EA6C6C8233729E5096B396D8B71284B16B", + "plan": "32B471BFB91BAB661D3B45EAD13584397580AA482ACF0C21FDAE8E362B0EB5DD", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 25, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 26, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 10, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 13, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 16, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 47, + "read_keys": 61, + "write_keys": 0 + } + ] + }, + { + "sql": "49DEF4368EADFF666271CE8B46D756FA08116E4BE20D97CF58D42699B46A0EBE", + "plan": "5C1B4B590CFA909D089E7B99B0D2E25B55929AD5F527180070F18533DCC464DD", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 35, + "read_keys": 19, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 29, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 22, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 43, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 14, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 17, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 65, + "write_keys": 0 + } + ] + }, + { + "sql": "1A96197A635AB3D1C0FC027CE178D8AA751E4BD033C39DB6163D3BA75B49FE3F", + "plan": "03FA0F18132C15290435CCD6930C03FE7257C7017164897B1E5ACDD3C92E1828", + "items": [ + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 60, + "read_keys": 0, + "write_keys": 0 + } + ] + }, + { + "sql": "D23E435933DDA9776898AF5372DA4A8170C81CB971CCFE903E9E49028F7B1E47", + "plan": "2B9FC5914B63DFC7DE696A63EB7B821501CC7EE54FA4CE9A8CFE8D08F31E938D", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 17, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 20, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 40, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 35, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 19, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 13, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 24, + "read_keys": 3, + "write_keys": 0 + } + ] + }, + { + "sql": "20C17C8EC30F23572E2D417B0E1DD486C08239C8BFE3C1E19C6B389230863630", + "plan": "98F5E2C47489283430C6AF8392083C200939C1630C86FD7A18D213A791F2EBA9", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 10, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 13, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 44, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 14, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 16, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 32, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 39, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 38, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 32, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 27, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 23, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 38, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "6F7C690C09E7043BEE9323CBA43EF49A6BA873FE1EA10E183131394A4D6F1A5D", + "plan": "6C52F64A18572BC69282B5F34D432090FACA2FBDBA296AE29A6A4CA1E0DD1D5F", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 27, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 13, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 14, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 28, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 20, + "read_keys": 122, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 15, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 68, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 29, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 18, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 32, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 19, + "read_keys": 63, + "write_keys": 0 + } + ] + }, + { + "sql": "492EF490082EB454CCB9F0826C1DD97E3F897AEDC1B4A605A5FC66C638EF7C67", + "plan": "FE2FBBD4EA4A5AA61C1D35A52D1B565339A2C6E3098600F7847D3730D2374951", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 33, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 20, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 56, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 20, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 25, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 19, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 65, + "write_keys": 0 + } + ] + }, + { + "sql": "6D7B7ABDE6AA01705BA3D944B5686A24BABD982CEB92E7F88803B7363EB7857E", + "plan": "DC917E260B0AFEDEF980966E489B3CEE6653A361F60C1FF4A770C7BDB7FD3249", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 10, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 11, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 39, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 34, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 14, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 19, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 22, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 89, + "read_keys": 108, + "write_keys": 0 + } + ] + }, + { + "sql": "72A494B42F8B2089261997413300824A261DBEE03E4A19508BA673E7225DDE77", + "plan": "6D501244687E64FF4A698C0CC8C29293899F12754C65452B4EDBDC0D66073018", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 21, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 25, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 24, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 73, + "read_keys": 23, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 26, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 19, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 51, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 55, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 26, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 20, + "read_keys": 52, + "write_keys": 0 + } + ] + }, + { + "sql": "7BFC77AE10C2544D411E1C14A54632F76EAD0C0D754D0383D2F312ED7D94DBD9", + "plan": "1D319FBA064ABA744D971E020561D9079FED38E6E118AB915754923B2FC22B98", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 46, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 21, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 9, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 55, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 45, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 13, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 34, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 13, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 13, + "read_keys": 51, + "write_keys": 0 + } + ] + }, + { + "sql": "D8D2C6D518DE48BC5DBAB7EC7B94EAD27051020352C44645AEACD3083322E044", + "plan": "6B49EEFF4E6B7A9FBC3E36B88C17FB5A917DD3BC81A4F4418FBB304C69B6907B", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 9, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 13, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 38, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 12, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 29, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 27, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 17, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 75, + "read_keys": 104, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 31, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 60, + "read_keys": 59, + "write_keys": 0 + } + ] + }, + { + "sql": "589595BF9D23341E8A76D59BEC4F2BE8DD57652F2C215518142A9031FE751172", + "plan": "08099801A6FD77F9D9E166B1A013B4212BE4CD854CEFF6D6ACA0D9D1D6B87308", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 41, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 29, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 49, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 32, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 68, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 12, + "read_keys": 23, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 19, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 10, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 60, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 40, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 44, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 87, + "read_keys": 113, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 27, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "5405566A990A8AC011873A901341CABC3234044798656310DA35C68FF1896241", + "plan": "64D181EEF0A1B304FBD0D64B9805CA91112C40FDDDB08E1B3C49B3A7DFBC995C", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 34, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 15, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 8, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 23, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 20, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 25, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 16, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 19, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 34, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 19, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 73, + "read_keys": 39, + "write_keys": 0 + } + ] + }, + { + "sql": "D7B30707090F6063FEC3367640C015989D8FC4AD4C7303E59227F6E37C95F217", + "plan": "9873898D3359D84799FB3D3D1E6D65EA687948FE8B307DB671F26A7E5711ADBA", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 15, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 41, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 30, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 25, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 16, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 30, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "111C76CE5DC87248AB2F7E8FFDC06BE19B0099B59EB2C6345D6BF299B60139D0", + "plan": "5B9A7A2750AA0C5327731B857B935EAF0B161D6B827DC19549147570A9BCC1BE", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 12, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 25, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 16, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 15, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 41, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 33, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 8, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 32, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 9, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 21, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 15, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 96, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 12, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 14, + "read_keys": 31, + "write_keys": 0 + } + ] + }, + { + "sql": "F57844B674C567C3056BD9CE9731B6C5C8957565494056AEF383F49A5A8A3047", + "plan": "18E5BE518E7123667E632965B4D111BD6CBF46888DC1959B94FF90780ECFD5D2", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 23, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 19, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 38, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 43, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 16, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 35, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 80, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 30, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 29, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 49, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 77, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 14, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 51, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 49, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 9, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 18, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 25, + "read_keys": 59, + "write_keys": 0 + } + ] + }, + { + "sql": "A7B74E2989EAF1CDA1F51C92087EC31FAEBE9253FA06362179EDF9A9CCB3927D", + "plan": "CDFA3CE40B3E9F3C25F72D46B19E9D4618BB7647A548C876F43DAF4F6D8E4862", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 29, + "read_keys": 91, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 12, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 9, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 31, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 67, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 40, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + } + ] + }, + { + "sql": "114C22C9C03B74702D2C7F7EB42D6FA9B7E08A514368AC959AE111922EC3B092", + "plan": "30CFBA9FA0F59FF8522186C060F8D4C76D2C0A8C02ABC17D94F170BF3584D3E9", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 22, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 40, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 30, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 32, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 10, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 17, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 22, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 14, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 47, + "read_keys": 31, + "write_keys": 0 + } + ] + }, + { + "sql": "FF9CB6E071F14D1389862B8D80C324A4A64FA82C88172C9BBAE60037B9B97952", + "plan": "DE146E94F540C04A477D900B90875FC3B4C4FAB2AA95E2B4A16279F329250996", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 9, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 29, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 23, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 18, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 42, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 22, + "read_keys": 39, + "write_keys": 0 + } + ] + }, + { + "sql": "BED6F7B30D534611864AB8A2407551DEDB7168134ABBFBAB5873DD6FFAD3C4A2", + "plan": "92BF1734CC87AEE219E431376A3F5BC58D7A4826CFC6464EC60A32587468D188", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 15, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 34, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 71, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 50, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 51, + "read_keys": 52, + "write_keys": 0 + } + ] + }, + { + "sql": "ECA94B3506875D1EC70E4AD8C4FF8F8D0D963FB42A6F92559B26E1CBAC8D3C5C", + "plan": "7F77B4BE74C018DF163F99826ED599544AA11259A59C1CD4D0217507BF362E82", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 39, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 41, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 33, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 43, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 30, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 17, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 14, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 41, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 28, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 17, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 9, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 25, + "read_keys": 98, + "write_keys": 0 + } + ] + }, + { + "sql": "203D3E4259334D67D6B379AE2450015137A019D795676F210A05F7EC7B629808", + "plan": "71686276FE63F11C09538C48271898A1300EDF4DF18BFF5BD539329D9ADF11C6", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 30, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 19, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 13, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 23, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 64, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 45, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 32, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 27, + "read_keys": 116, + "write_keys": 0 + } + ] + }, + { + "sql": "3ACBC9EA4C0821249A95EC7B2D733FED7F88BD1415288E9F024F5CFA7090EF05", + "plan": "32F6FE6BC30C0A8F7DFD688173726C2A93A448E93E5893A750637E16D54892C9", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 18, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 22, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 55, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 33, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 32, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 14, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 31, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 47, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 77, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 46, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 52, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 38, + "read_keys": 107, + "write_keys": 0 + } + ] + }, + { + "sql": "F915275BB5A82C46E981009AEA8457A875CCB0D8DCA16A391D0E3414E1A5D7FB", + "plan": "98F6797910CD496677B454BECD6B192363FB4034FFD648350C33030E39984D24", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 27, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 15, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 11, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 25, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 14, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 25, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 26, + "read_keys": 21, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 25, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 13, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 47, + "read_keys": 73, + "write_keys": 0 + } + ] + }, + { + "sql": "D1266E4BFD50D7D786FF711950B2781D22A5461FBFDAF0067257A4F9BCBBCCE1", + "plan": "3DFC8AA95D47D421C377E34C48CF517126ADA77700BBA31E889BEF3612052FDB", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 8, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 27, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 19, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 21, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 24, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 32, + "read_keys": 36, + "write_keys": 0 + } + ] + }, + { + "sql": "E86D2F7E398CA74DF116559C85E8C3A7D18AF009BCB8BF2EF3684F110D8EB1E7", + "plan": "1FDE5704A33BB139D08AA6D9B97106CB1DFB2368D1C063F4C84DEAD3464F0E5B", + "items": [ + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 10, + "read_keys": 0, + "write_keys": 0 + } + ] + }, + { + "sql": "B543712C0A1A962497ED5135E7B48AB9FEB4C3686DD90DD68EBCD74E4D3F5F3E", + "plan": "CD5864C1F2F62959FA38988D63D5C187E67EF53795343FFAC1C5CB60A3D10FAB", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 16, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 21, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 17, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 28, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 41, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 18, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 38, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 14, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 20, + "read_keys": 35, + "write_keys": 0 + } + ] + }, + { + "sql": "C811948EC4BE34D1768662C6CD5B28A5346A5C0B5DC1A5067B17C788E74F6BE7", + "plan": "9B74C09B6660EF6A2ECC8F1CCC4E73193B145B58B880A2AF6A0ACC4DB72F8657", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 22, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 9, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 12, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 32, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 23, + "read_keys": 19, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 24, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 26, + "read_keys": 112, + "write_keys": 0 + } + ] + }, + { + "sql": "2D593AD58B9C996DABCC20A71EF13A139A38BF7B31CE02D701FBD9B098143DF1", + "plan": "4B09C887193F34E16B633755578726A9A4929C8D052E21E16B06B7C37E034A2D", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 60, + "read_keys": 101, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 24, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 17, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 21, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 47, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 10, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 12, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 51, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 34, + "read_keys": 106, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 20, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 41, + "read_keys": 92, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 36, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 20, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 19, + "read_keys": 29, + "write_keys": 0 + } + ] + }, + { + "sql": "14BEA443732CEC67A490C8DFA9266E740679FD7910FA9D7F9ECF68FF92B7EF81", + "plan": "CA89DB3049DA7B6C3A3BC0BD28A4E517758D0DDC3DFBA42F453F602865603829", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 22, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 14, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 26, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 46, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 22, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 46, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 14, + "read_keys": 68, + "write_keys": 0 + } + ] + }, + { + "sql": "DDC8749587933F3035F5C8651B5042D8F8FB5CA5FB5FD86D1109A304AE1ED314", + "plan": "1733176CF27F85B29C9D145EB411CB3F26F287D05A303BB8113A7D54B49D906F", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 22, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 15, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 22, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 19, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 34, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 28, + "read_keys": 38, + "write_keys": 0 + } + ] + }, + { + "sql": "B95A604794F9EFF17A1A6A37D754324BE11EDE348A0D1E53DA2BC3C32D6A4142", + "plan": "9449388A4EFBC35C8ECA1639AEC164392DF687869239F9AD16EA37887D98C42A", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 31, + "read_keys": 3, + "write_keys": 0 + } + ] + }, + { + "sql": "C83887C9DEE750ED0CB2DBF264D6CF0F8BBEF01BD0D452AB1680103E44D9F695", + "plan": "0609E34B8E7AD564B246B0039D7498A3AADD0C97D0115FF0C943209E654659D2", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 10, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 34, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 25, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 33, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 22, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 13, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 78, + "read_keys": 108, + "write_keys": 0 + } + ] + }, + { + "sql": "06509FCF2C3F09B9E8C16A9B4F96C0A4BAF47AEA5CC4F5D79E274AA248892AFC", + "plan": "AB658D22B3FD55CF4F81C49E35BD05036CD6AAEB29A8008D362FEA287A4E0226", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 15, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 24, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 36, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 13, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 54, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 29, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 42, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + } + ] + }, + { + "sql": "F3DEDDB66CDDBFDE5403C79C61769804004246D3BAAC9578EA7C004FD84C0BCD", + "plan": "39C62B2D47951FF49D90A7F8DC4EAA8C41B9E7F9A5177222C971EDF14636B978", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 16, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 20, + "read_keys": 20, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 10, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 22, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 15, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 12, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 59, + "read_keys": 107, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 103, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 25, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 21, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 21, + "read_keys": 82, + "write_keys": 0 + } + ] + }, + { + "sql": "7F177FEEAFF1DD8758B09876F80872BD2379239948037E03A8276317B3272895", + "plan": "CB98CCD9809AA02D651671E01B69D146A0F30FA6985E1F0DD966875FD612A808", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 23, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 15, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 45, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 15, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 27, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 99, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 14, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 29, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 15, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 42, + "read_keys": 43, + "write_keys": 0 + } + ] + }, + { + "sql": "BD0EAA029FF9FF2CDFB7B6700D1C714F2F8E9912DD829FDC53A51BB3E74BBEC0", + "plan": "4A283E98364BDDBCB436099CF70608AAFFF151BD0669EA36002DFEE7E685E4D4", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 39, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 40, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 33, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 76, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 11, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 30, + "read_keys": 7, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 22, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 28, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 11, + "read_keys": 76, + "write_keys": 0 + } + ] + }, + { + "sql": "1D80EBA0D03427A0667FA7C789BEB3040557DE5B6440F81748B3A94B9FB66A07", + "plan": "3B2B333D576C8DB8CFB1A273277F511BD1392E0463F77BFC4382FA234F977043", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 41, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 22, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 41, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 13, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 24, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 15, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 31, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 26, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 20, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "93425420390458354694819CB26750FE10CD7CA0179AC91DF8C86968A961ED8A", + "plan": "DA129A3C69F1F3D78C87FC5475C01393AD1F9E6C34E15D28A9AF97E535E98972", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 61, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 10, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 25, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 45, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 37, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 25, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 19, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 31, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 29, + "read_keys": 119, + "write_keys": 0 + } + ] + }, + { + "sql": "6F430C8D778CA9085F7867413145587ECC25B9C29A5A4CA925D5857802D16F14", + "plan": "AD838BF912CEA5C396A3D67C092EEECAC73E081782ACA20AA21326A76C935BB6", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 10, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 17, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 26, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 15, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 12, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 30, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 16, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 28, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 41, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 35, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 16, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 18, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 23, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 45, + "read_keys": 69, + "write_keys": 0 + } + ] + }, + { + "sql": "40F50F3811B3FE75B378697E7D4651F670F0DD400FB1E3D47B43B93D5109C7ED", + "plan": "7649A4C292548267DF8BE07A8FEE2E8ED02E803FE984F8C070C7727073EE761B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 26, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 67, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 15, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 44, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 78, + "read_keys": 118, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 54, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 42, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 27, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 16, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 36, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 57, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 37, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 37, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 57, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 14, + "read_keys": 68, + "write_keys": 0 + } + ] + }, + { + "sql": "7E0C763E334D1FCB954F036AD09C59A2C3CD21CBE8A6A525F16450EDB552A224", + "plan": "02017C99CE4A1CF735278B41AAF5FF9812F168F44EFCFDD198EE54CFE6778188", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 15, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 9, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 32, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 32, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 13, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 58, + "read_keys": 65, + "write_keys": 0 + } + ] + }, + { + "sql": "8B9C68B0B267D05EFF257AECBEFB4CE9CEA4983FEC60E81322CFD2D8DDFA8741", + "plan": "146C7E875687C50A33CFA938C67982AEF40E526F7DB4534EC186F17E3F1E00C4", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 17, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 23, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 8, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 15, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 46, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 30, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 64, + "read_keys": 78, + "write_keys": 0 + } + ] + }, + { + "sql": "970C748DA2EE63FAA2421772421A3DAABEDBFFE84A032C78F7842E5EB4091741", + "plan": "5CE128E26BC6DAB37E1F0F397131B8DF0C086974A4F6A436A9544B34E6C5CB6C", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 30, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 62, + "read_keys": 98, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 14, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 10, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 10, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 12, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 27, + "read_keys": 110, + "write_keys": 0 + } + ] + }, + { + "sql": "6731664D0EB38B61262410FEB0797C348AF1F1271640FF92E0FE2898AB3CE08A", + "plan": "250C11C2507F760D1DF7A1263A1455B64FBA6834C57A868D8AF10EE8B9CF6162", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 60, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 23, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 30, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 19, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 17, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 31, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 19, + "read_keys": 71, + "write_keys": 0 + } + ] + }, + { + "sql": "045D5A60D6D9160F7DAC77CD31E0056592A1A708FB1D7614BB8DAA53CF2D88D7", + "plan": "F096BBBDB4FFCEA0FF6801EB65B38C588AF03A48457DF6075AE8176A9585FB14", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 20, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 23, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 20, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 12, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 34, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 42, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 42, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 11, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 30, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 43, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 19, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 48, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 48, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 16, + "read_keys": 71, + "write_keys": 0 + } + ] + }, + { + "sql": "BF6331EDB59AD1D90459B8FF43C1320FE4566FF017D311DCA60456D024E53C78", + "plan": "5505C275E1292DE52FADEBD14347E25F0F4AB55C3774AFD8F93A57741102F0CB", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 17, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 34, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 28, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 70, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 100, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 20, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 56, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 34, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 72, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 34, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 36, + "read_keys": 53, + "write_keys": 0 + } + ] + }, + { + "sql": "7D8C82EC1334CFFD76803B3E7019EDC0346EF01AA70E4578F58324EF503DDE82", + "plan": "3FD9851EF20F1AAA15553306231179F56B969697E0640C9CC8CCCC0EA7544119", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 21, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 31, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 19, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 28, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 43, + "read_keys": 105, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 63, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 21, + "read_keys": 92, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 33, + "write_keys": 0 + } + ] + }, + { + "sql": "08715E6CFDF749F2C79B3708E2E4DDFC7B0E80F697F8CFE419695936B26BB970", + "plan": "5DE10FAE0759F3E30F8C25C5A02173C41600DF6648DB56AC284D09EDCB8933F9", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 31, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 17, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 21, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 38, + "read_keys": 113, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 47, + "read_keys": 106, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 26, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 17, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 18, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 49, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 33, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 20, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 74, + "read_keys": 106, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 20, + "read_keys": 57, + "write_keys": 0 + } + ] + }, + { + "sql": "9CC4C3B727872679B69D052E1B0C747E37EFF5D98E95A06BFA454A9C8653D3CC", + "plan": "28EE491567E0F2B51586EDB45A5CAC36561AB26DDB8F252A623C628F9B877DB5", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 38, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 25, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 25, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 27, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 37, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 13, + "read_keys": 20, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 27, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 16, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + } + ] + }, + { + "sql": "C96B99DCC0C325AED522E94441DDAADA93844553F0E5DE830D6DA9CEC7EF61EB", + "plan": "53047840B75C96E2283F4F58E33842DF34C69318EC390CEEF3C79B800DD0FA4D", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 46, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 61, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 22, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 52, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 20, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 13, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 15, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 11, + "read_keys": 90, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "8C4D1613C92C0817A36800E5CACAF852AE235BE1AE983897CAC4F7AA8CCCE178", + "plan": "B22AEFF6F34713B21E61FD007BDD55CC7420E1443C205A8BFC618D9B1F67E6C3", + "items": [ + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 31, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 35, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 11, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 21, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 15, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 9, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 13, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 18, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 67, + "read_keys": 57, + "write_keys": 0 + } + ] + }, + { + "sql": "E09E5A217C25FD430A67C76AD5DE589A5ABD0A305A026C7EAF35E3B58FFAA5B3", + "plan": "88E012BB3A3C094FE9A7AD7E827C1E666B0BCF5E19DDC041C768A5C130DA468C", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 8, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 14, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 11, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 23, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 17, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 53, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 25, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 62, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 17, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 36, + "read_keys": 37, + "write_keys": 0 + } + ] + }, + { + "sql": "EFBF0DFEC332882FCA5ABA292A03F325EF855EBE1CA84F95F3ED81517804AC27", + "plan": "77F7F1343D561FAE5F4A9C382D14E48CEB834C8F6C4BF2DEA39A5F0B869A6127", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 12, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 57, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 15, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 14, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 33, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 65, + "read_keys": 98, + "write_keys": 0 + } + ] + }, + { + "sql": "D1C7A1E699F2345454013D7720036C383205081480533AA20998C312DCB64352", + "plan": "7AC850A13ACB8A27593E498752BE197E0F0430D499FDA1CD66F9FC460FC47E8F", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 32, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 10, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 87, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 11, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 15, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 64, + "read_keys": 104, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 18, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 58, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 59, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 19, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 25, + "read_keys": 113, + "write_keys": 0 + } + ] + }, + { + "sql": "C8E2D3A6A70C207ED03B1E953145BE28188364D78C10F497F22B53D771568BA0", + "plan": "F0AE51A9EDD5486E3CB68ADCDB088125051896830CF688A38D8E3F04E859555D", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 24, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 25, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 43, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 88, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 9, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 78, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 20, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 62, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 12, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 20, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 30, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 38, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 101, + "read_keys": 103, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 69, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 62, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "B0403D4728F8D1F835A9AFA9D550723511590A41E476F3B5B98C861C18B7DF35", + "plan": "C89524E89A70501AB908AEFA1EE977BB73C2AA4CD2BAF7994C84055BC8A546C1", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 80, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 15, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 46, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 38, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 20, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 20, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 18, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 11, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 36, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "1D7BD9568E45291E7FC526C9E096E1DE37FC577DA91C09298EE88EAFD60E7199", + "plan": "FF775058D604FD93958D3CB7874C98B178CF4A419EB434DAE0D22CFED2DCE84A", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 14, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 33, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 36, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 27, + "read_keys": 112, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 56, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 29, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 75, + "write_keys": 0 + } + ] + }, + { + "sql": "45F7B253866C3A4277820737C2C3E744DE469252738A4166CC79F1FCA60DC938", + "plan": "EC6BD329509310C8989DAF22493956A1707742205129089A9A96934CB52B00F9", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 17, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 64, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 46, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 9, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 49, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 23, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 19, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 11, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 21, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 21, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 13, + "read_keys": 60, + "write_keys": 0 + } + ] + }, + { + "sql": "212A2AC4A1B54B277635E8F8A78A77F1526BD90365BE1E0284CFD0C289B12AFB", + "plan": "236B93CBDA1D6881EC39C7F8E1750EABB0089D7DA2F0692F4165603ACE09926B", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 27, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 77, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 60, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 51, + "read_keys": 85, + "write_keys": 0 + } + ] + }, + { + "sql": "9F2BA598D5646C6EA1539FBEEE823EBAE8066C9F2199354445C33EA66B183224", + "plan": "3B96A69A40FE2A96BDFDA412CEC85BC49DE0C0CFB311A5A4FC3FF38A336ADF07", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 38, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 34, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 25, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 47, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 39, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 25, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 10, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 32, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 10, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "0EA44F4AED6B13CB96A248533FC00205477763F56D4DC877971C267B1B9420E8", + "plan": "93B5F24D40EDB8A94AC2D8CD6F0176E466374935BB9CAB47766DFC40BD90CA31", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 8, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 20, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 67, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 52, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 9, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 15, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 27, + "read_keys": 35, + "write_keys": 0 + } + ] + }, + { + "sql": "656196FCA100EAF0F09F70D19397CF42C3B7D68E2F8ED4EE6688C6BD4A570180", + "plan": "1515F90C71C60D10DF8078EA076E5C6C07EDFADE9E2C522275AB3DB2E4A8CCD9", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 12, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 9, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 14, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 25, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 16, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 31, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 16, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 14, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 27, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 32, + "read_keys": 112, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 68, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 35, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 41, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 22, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 45, + "read_keys": 68, + "write_keys": 0 + } + ] + }, + { + "sql": "59E25494C61C849BC2EE7FC4DD79AD19ACC9D71010C5078DE27A0ACCE3A6DA4A", + "plan": "356C415CB75A6C3F0DAE8058EC27184EB739FF9302DB631E616C21F73223F544", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 26, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 31, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 16, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 41, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 40, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 50, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 23, + "read_keys": 116, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 47, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 4, + "write_keys": 0 + } + ] + }, + { + "sql": "2AFA7D7F8BF7DD8DDC0E2E91A7E1C73F700923D47B0D5A360C58FC64A9410947", + "plan": "5C33307489E7BD2408EEB5E8B32FA531910BE8F85110BA019ED7EC744E0720E8", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 39, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 15, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 25, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 19, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 11, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 23, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 21, + "read_keys": 94, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 21, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 14, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 50, + "read_keys": 52, + "write_keys": 0 + } + ] + }, + { + "sql": "6FEF5E5498DC55EB3D88DB0DD30C7D7F16DA9F0869395B89F60D9F8E61079741", + "plan": "A5BE327D92D9AC11B2B2A9D79B08D4A12F904E55C0DABB16CE825B28D32CFDFA", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 21, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 40, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 85, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 44, + "read_keys": 98, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 50, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 45, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 13, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "B71F384BA0840117BE470B86BA9DBF1044E5B53B8A2CF50EF8834DAA05A7C7F4", + "plan": "5FAD4EAA2810024403037260A40B6408EFBFD5424A05CEE71BAC198A87C90511", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 32, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 51, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 33, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 80, + "read_keys": 111, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 47, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 34, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 45, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 23, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 38, + "read_keys": 78, + "write_keys": 0 + } + ] + }, + { + "sql": "C96CD3FD0047B5FC6122154F4C02F68C0B8826BE42BDACA30E4B80F3784FD84A", + "plan": "C139E3C90F60538FF0031C2DF0286C8A2898736C7F4326FAAF8C8BA982D74C8C", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 32, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 77, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 16, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 49, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 26, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 32, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 52, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 21, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 69, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 14, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 9, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 39, + "read_keys": 89, + "write_keys": 0 + } + ] + }, + { + "sql": "45098FFF5CEDC843892776F431188FD9E0865EBAADC8E1DAFDEC4D4120AC9C0F", + "plan": "A00F1CFDE52AFE0F10D4BF62D56EC4CADF3E9651DE35802BC510FEBBD065CEAF", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 12, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 28, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 15, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 31, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 15, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 40, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 62, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 25, + "read_keys": 47, + "write_keys": 0 + } + ] + }, + { + "sql": "E0E3429CCB153C834788D08FC700E9B1050F006BB68ACF2B95087D2FEC51E5FE", + "plan": "62678C8D34E1775694842D6AAF29613B9464CDFEE98BB0469591CAF6621CCFC7", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 22, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 16, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 18, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 117, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 17, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 17, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 37, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 34, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 34, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 46, + "read_keys": 28, + "write_keys": 0 + } + ] + }, + { + "sql": "137849B8DBD52A6AA3A6EF3F206BED655349EA62C231470A1CB69175228B373E", + "plan": "069BC7F7C950A5E23DFF680C7F8117F377AD3E131B7DB27933B4CB2F4E21B5EC", + "items": [ + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 14, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 31, + "read_keys": 87, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 46, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 76, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 30, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 35, + "read_keys": 123, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 24, + "read_keys": 80, + "write_keys": 0 + } + ] + }, + { + "sql": "F634045C5F72E35866075B1FA2B449C0A326F105D21869B05C9C588B3D114F8D", + "plan": "5EF935718A8D0A6A335434598827F354AC41CCF12060419DCDE8144126E477E4", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 16, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 20, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 45, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 39, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 10, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 10, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 51, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 23, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 47, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 39, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 88, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 34, + "read_keys": 28, + "write_keys": 0 + } + ] + }, + { + "sql": "BB335607C9436D6293FA5D5A3A90C17B84FA7E8646C2B4F19BA8D8EA2F0CA96E", + "plan": "B765E42344D57CD405A400BB1BF54D42E605AAFF02058A6E4DD01F3DC6062CEB", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 25, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 18, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 12, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 17, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 31, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 22, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 21, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 51, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 46, + "read_keys": 43, + "write_keys": 0 + } + ] + }, + { + "sql": "2BF90D7E27F0A09B65AFD21B182A505411647E7D4C5B836378472B8DF87598E5", + "plan": "0D2852EBBCB13A5BB5A8663A999F0421BCA35656083282460BA78EC52A968DD4", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 10, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 13, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 21, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 24, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 26, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 43, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 53, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 43, + "read_keys": 89, + "write_keys": 0 + } + ] + }, + { + "sql": "072000F1F6E561C4FE23D86F71C55E728DAF657DB12902BDACA68B2B6CB42A8E", + "plan": "54AD2DE95C11E007F1F66B8695643DF8418AF57E80D563872B2C7F9AEC8EA0A2", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 27, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 27, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 39, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 24, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 26, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 15, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 9, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 9, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 28, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 65, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 25, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 27, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 17, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 50, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 28, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 53, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + } + ] + }, + { + "sql": "89A16CC0602B925AA04BB5B7F4B0B2623D3200376DED1FCD41487B70A3DB6404", + "plan": "18AB00E95BDFA13C6CCD8358B1E7CE2A5049B02EFE746FB5286F25087847B556", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 20, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 34, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 11, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 29, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 55, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 47, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 14, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 11, + "read_keys": 32, + "write_keys": 0 + } + ] + }, + { + "sql": "12BF122C2CA72A92D29E43DB957743218EEBD049C997F172E2DC63F43FCD8A1F", + "plan": "E10168A06612DC693D754B629424DCE3FDED4F18126C9AE6A5C8F40C5AA93E88", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 14, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 35, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 18, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 31, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 49, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 68, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 16, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 26, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 25, + "write_keys": 0 + } + ] + }, + { + "sql": "38547A89C59388B08E615EEF27C4493DFC20E28ABBE3067A48B83BFDFABFA09A", + "plan": "E1F72517D78132094A511BADCDFFB133338353BF2FACBA85C078669E7096FC41", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 40, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 19, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 25, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 11, + "read_keys": 17, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 17, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 27, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "D8B60A8B847D4D5EED61444246C351A3C0AEFA25FD9023CA878C8C04B76321E5", + "plan": "35CF595062FA3F99532AD0ED6E3DD3A7E162232BF24D242F8C78EBC6A8F0ABDF", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 41, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 71, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 9, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 16, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 16, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 14, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 18, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 8, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + } + ] + }, + { + "sql": "3B80E0BEE3DF1CBBC302BE40DE214149CC9169E58979D6B1C8BC4C9ABD127239", + "plan": "0F7E72EA2DB0E697A6AEFDDB9FD213037108F097F03596132C1C9A722C395E0F", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 30, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 14, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 17, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 10, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 33, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 64, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 19, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 28, + "read_keys": 97, + "write_keys": 0 + } + ] + }, + { + "sql": "7555E91E2A56689BDABCE3CFBA1992A0CA0050ED1B83E71CA16CB6BC77174353", + "plan": "BED02F3B9399BF303D1DFF98251A0B5A8253F0AC0370856D6A26AD54358FC60C", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 16, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 41, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 16, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 24, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 10, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 39, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 23, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 50, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 16, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 30, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 14, + "read_keys": 82, + "write_keys": 0 + } + ] + }, + { + "sql": "1A3C2EF09B33EC01C9431BACF71122309FD3B1492A40B5D4489350C41E894176", + "plan": "49495324986AF3DC7F1382D0E2FAD23E1D127ED2A7B105E9EF91051D6EAF783D", + "items": [ + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 16, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 23, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 14, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 25, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 86, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 33, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 19, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 32, + "read_keys": 78, + "write_keys": 0 + } + ] + }, + { + "sql": "BCDB0A279927A7CD9D8E07F0C1454168F786635F7D641EB9ABF3D130D708DC53", + "plan": "855766F5D709CA90BC52CFD88E7F7AA08060EC8AA7A7F967E7F3BC3699918FC9", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 76, + "read_keys": 101, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 32, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 33, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 15, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 40, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 39, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 18, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 22, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 18, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 21, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 13, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 35, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 33, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 15, + "read_keys": 4, + "write_keys": 0 + } + ] + }, + { + "sql": "9957F278C418541B5A722912A9A3E3E8040B9790FDEA85C34AB52E2EA9172C1C", + "plan": "ADE969DE4CC8498DE6DA5214A73CD674FD0F7EB263ECFF7C2C99A2E8F137847C", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 33, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 35, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 15, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 9, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 16, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 22, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 43, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 53, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 15, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 16, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "48A3E88D20E6D01C78ED407AED4418DF260A7BC1525E7302FF5FA746D1E3CD4D", + "plan": "CC2923C47AFDA695A7C3D17492CFB68674F288821731BCD6EA4FA888275C832D", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 17, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 7, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 12, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 13, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 30, + "read_keys": 52, + "write_keys": 0 + } + ] + }, + { + "sql": "2DFEB316E406049E7D14ABDD25963761EF14021A4FA0E41A517053C4C545453A", + "plan": "EFF6C6E9F72E6F1E7302FAB326B1C6771B43EF1AF9E1AA8D73B33A71C0891D78", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 19, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 19, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 23, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 34, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 47, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 39, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 30, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 77, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 26, + "read_keys": 109, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 28, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 40, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 16, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 30, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 23, + "read_keys": 58, + "write_keys": 0 + } + ] + }, + { + "sql": "587702C0FF9762869558CBE00F085A871F62A12D8FA2C54CFFF44E7CA50EE8E5", + "plan": "71E6F8D3A506DADCD6E9B449AE24D0D3E2159DF318C2F805730276E934F21060", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 25, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 26, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 17, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 52, + "read_keys": 113, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 67, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 26, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 50, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 18, + "read_keys": 69, + "write_keys": 0 + } + ] + }, + { + "sql": "8DA51D453EE5B90B55936B76618BA406CA881D32E32D6636A66BD9C5EFE3B17C", + "plan": "39C099A9F4E0856C31C8C1297556243EA8541A32ADB596654041A264717CF489", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 21, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 16, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 20, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 22, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 17, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 25, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 11, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 41, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 70, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 36, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 28, + "read_keys": 64, + "write_keys": 0 + } + ] + }, + { + "sql": "C3142537B2D5DE87BEBA93862AB9A6D04821638A4EB7469840042430D1EDE929", + "plan": "49648570B59583FA8E7DBB3CC6FF345D8240BA9C049EF2207BAC6452BB521D96", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 8, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 36, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 17, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 24, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 29, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 64, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 29, + "read_keys": 4, + "write_keys": 0 + } + ] + }, + { + "sql": "0EFDBC48BEF6A4AA26E3612502E57E280A9F8FD62FBAFC57FFC20B5ADCD347CD", + "plan": "17C5BF85BDDCACEA0E562EF4957F23BA56C20321FFAAF8905AED117C38AB5F08", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 29, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 9, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 45, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 111, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 24, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 51, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 45, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 27, + "read_keys": 74, + "write_keys": 0 + } + ] + }, + { + "sql": "FD8E81307394A40283385E55C6B472BAF65638EF049B5B9B5A7980DF7D744E75", + "plan": "C3B3850DC9448033F2C96B38F2990FB22B5C5C0D6BB21C99C2BDC86AE455F96D", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 38, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 32, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 12, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 53, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 31, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 45, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 22, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 13, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 39, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 20, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 18, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 11, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 21, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 38, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 19, + "read_keys": 67, + "write_keys": 0 + } + ] + }, + { + "sql": "E25B5EC8C7B4753CD242EC2F606028B899B182651FB331C9D2D1DD27038EC2F8", + "plan": "DE4DBD02D8BE8BD87F34542285053006546F9BD8267BCA220FD349D50CD8969B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 22, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 38, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 20, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 45, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 46, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 18, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 30, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 33, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 38, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "878E14EC4A0BC8C53A3E3761EEE7D634092C64DCCA5D222B613BF81539414153", + "plan": "B3AAC9114F82F9E2744F6A30AA37107C9434FE02D5B2E2D3973A3206F02340B1", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 8, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 16, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 15, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 9, + "read_keys": 21, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 45, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 14, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 36, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 24, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 39, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 14, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 38, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 12, + "read_keys": 47, + "write_keys": 0 + } + ] + }, + { + "sql": "C51CFADBA7B4E483AA7018E1FD21AE4488D6B24583A26A19694BAA096CF7575C", + "plan": "DA81354AC26F242F3C631004FF691889028E05FA7A5930377CF0A4455614FC0E", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 20, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 29, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 83, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 40, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 18, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 61, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 9, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 13, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 15, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 14, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "25AEDE95C1DC78206DD95959BA674960C47A1B0F46DE1B9E0F5FB2136FB1BF5B", + "plan": "37A31D69CC7E6928EF3510A94001BBD3F857B07B81AC37188BE7A4FF4BA7C854", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 30, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 15, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 87, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 24, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 24, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 14, + "read_keys": 20, + "write_keys": 0 + } + ] + }, + { + "sql": "1C94769F00609E9A7F2E65FE5910A9F20A3683EF18822DC957BCFC1FE2FEE9DE", + "plan": "9F71D5BCD51705BAAC857D807CDD741011DF073E8794BC72EB13D1E13D56557D", + "items": [ + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 39, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 17, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 13, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 37, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 40, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 50, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 40, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 29, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 39, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 50, + "read_keys": 60, + "write_keys": 0 + } + ] + }, + { + "sql": "300BEC3BBC438B07337851529F7D6B6524DAA3BA5604AC6C52D1CD19C65CD52B", + "plan": "A8BA7EE64C84C0407F98B548E934BB707A377CE3719B4D1B735197BE1845A1D6", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 16, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 10, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 69, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 15, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 14, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 24, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 24, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 30, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 28, + "read_keys": 69, + "write_keys": 0 + } + ] + }, + { + "sql": "708208881EC34B5A3DC00B47D8CD139478174F50BA6B528E347F8808B130833F", + "plan": "4948D22A38ACD0D938C850E21C30E240687D1FF74ADB8DA96495B001C48E6B88", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 50, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 38, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 13, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 60, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 11, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 9, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 15, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 126, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 45, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 13, + "read_keys": 59, + "write_keys": 0 + } + ] + }, + { + "sql": "DD8E923753C67EE00941D41C2200E15983D39A18BC80A7C73FCE4CA35596CEE9", + "plan": "8DC92F66553B89E526DDC08A9B977F48FE8F0FD8ED97985C97DD509BDDE75049", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 11, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 14, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 27, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 22, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 21, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 22, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 9, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 78, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 22, + "read_keys": 26, + "write_keys": 0 + } + ] + }, + { + "sql": "091AA9F6553BFD740B78A21B8145C157966ABF01551AA4EDD59E9BD2CF5998EF", + "plan": "ED4A7B58FBE08D62956DD7B430EF61021817B17AF8241A1B7DAC7DE747B16C1C", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 18, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 16, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 13, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 82, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 98, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 22, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 51, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 31, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 31, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 15, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 47, + "read_keys": 103, + "write_keys": 0 + } + ] + }, + { + "sql": "2D5A8400F585B9DA3B2115E6C907A8E370BAFFF4FB1328364A9A50457CEF1442", + "plan": "DD8E445F483A7E9C838075ADB850671AEF134515454E9D8C163859177C31E6C4", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 52, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 15, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 9, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 14, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 25, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 17, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 64, + "read_keys": 120, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 23, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 76, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 49, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 10, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 50, + "read_keys": 30, + "write_keys": 0 + } + ] + }, + { + "sql": "8BED7ED3615587335401B481B00F6586556890812FE5E6BECE4864A8C27DD8B1", + "plan": "D0F6D51DE8BDFB2F260F710536D0C243D93E0A0C2DA2D05CB3DCB9B3A781CD56", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 63, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 36, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 20, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 23, + "read_keys": 18, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 18, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 31, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 20, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "F46DB4A2EA76F8E4BBD148CF558C24A438DFF73BD5FC432B2912E310A33B1355", + "plan": "BEE3E1D77BA6D1B57F4823AFDFF484016911B05D335EF9101B76C10C949F8AAD", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 9, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 63, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 15, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 10, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 26, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "05D5EB24203E0715A51A82617A84904BB84003083B2FE230BD40C776362A50A3", + "plan": "3897030D62803C49AE8A22C8E844759A5AF15F8C4E5F816AD2D3FBCB3B01922C", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 27, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 67, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 39, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 32, + "read_keys": 61, + "write_keys": 0 + } + ] + }, + { + "sql": "D736899C9FCF009EDF573DEE2AA095FC1BD9019E824E6603C62C3530B318C029", + "plan": "260234B3C6082363CC75DE66399D5B6FA16D625EED698D700CA642BC80ADAF03", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 12, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 22, + "read_keys": 106, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 37, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 58, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 23, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 12, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 72, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 24, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 56, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 11, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 14, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "862C6D0A449412902F1B61B9C596F2ACF8598E325C506CAF41160C0816254F8A", + "plan": "B0789838DE5D045C90AA9BD9074CAA64E64BBA681C6CD925CDE2147603D4657B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 25, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 63, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 19, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 51, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 36, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 12, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 18, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 68, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 18, + "read_keys": 74, + "write_keys": 0 + } + ] + }, + { + "sql": "A61E2B8810D40F48EEFCAA0F0C46F2E2A9457E7AFA125688C6B7D962B11DEFCF", + "plan": "819A115A124AA68EB9D143E96CB6715094DDBFF7628C7AA9EFB0A13BDB234540", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 12, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 38, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 30, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 117, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 32, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 36, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 70, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 8, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 66, + "write_keys": 0 + } + ] + }, + { + "sql": "F572FEC8BEF34CA34F0646B391D143F72D8F404748A288FAA2CE92DBC22E3797", + "plan": "BF5B301434E84FCA7697B58FA985B83BE60BBFF328CFE95AB4F7FD511B23B257", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 19, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 20, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 17, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 15, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 17, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 53, + "read_keys": 55, + "write_keys": 0 + } + ] + }, + { + "sql": "CADA1C21D8448DBD8B090D5573FE6AC7234DDCB4CB264DDC2D3AAAC9330EE001", + "plan": "2FFA52AD1C7A47C32CAA8F1977631F72044101CFB12345DE0AF73CC0E5C5CD4B", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 37, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 59, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 60, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 12, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 34, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 34, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 99, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 26, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "637ED1DC07CB1DFAE21A40998973DFC68A1076E4B4C0B96911527473EABD404E", + "plan": "147D4429B05DA6F83BB6BDE19C20EF1F28D240BBC036A91E28182A2A5E6687D1", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 34, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 19, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 19, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 12, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 19, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 53, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 37, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 42, + "read_keys": 37, + "write_keys": 0 + } + ] + }, + { + "sql": "672C1329813057A8B67284FA14F8A52B9CB4C5386F7A8EA1DEE1B5F2959F7F2A", + "plan": "B8CD41C6804D9C68E274957191F4FEE5FEC3CEEA8EBB2D8CD8047C7D66FBACC7", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 83, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 49, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 50, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 37, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 30, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 51, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "82444FE4B0DBBF84E78F8AC18D34BB75949E74C152105E708EF2E1F14119F974", + "plan": "9A04308FF8B72E1C4671EB762D16976893F4A7E3E686382CA07E48D5382995E3", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 29, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 12, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 19, + "read_keys": 46, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 20, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 43, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 31, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 11, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 18, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 22, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 46, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "8D7234730CFD860B8975E125EA30FC58EA69FAFBB5331FF5A81EE8408B14B8CE", + "plan": "C2481182BA4F14DF08EF50D52402D6AC0C43AB578FEC3A7D66B49642E32FEA7F", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 12, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 15, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 20, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 33, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 14, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 8, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 8, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 16, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 53, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 13, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 20, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 12, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 12, + "read_keys": 36, + "write_keys": 0 + } + ] + }, + { + "sql": "34A064596B5852F3EF315ECC76DEECB237C91BAE6F57E4908DF840547705652B", + "plan": "3B854E1E433EB84C8D3767A34C49EA68A945C424021CABD6C1F8B4842FECC3E4", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 14, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 29, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 31, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 22, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 13, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 90, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 12, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 53, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 16, + "read_keys": 66, + "write_keys": 0 + } + ] + }, + { + "sql": "8D5A6B18C4CB6B0CDFFBE82B1FA8357CB9D4C783B39180F5AD9231B157142756", + "plan": "4D877578541C6E1F5C011126A662C3862329C758516F7CE7AD4A38DD4AD77AC7", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 53, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 30, + "read_keys": 15, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 21, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 28, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 30, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 41, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 26, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 54, + "read_keys": 109, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 11, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 26, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 74, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 33, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 31, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 24, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 14, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 16, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 28, + "read_keys": 77, + "write_keys": 0 + } + ] + }, + { + "sql": "3FC273F5BE63150DD81D9B509FC4F6DD0E1CB73DD146BF6663D4A7FE3CBA5D3B", + "plan": "91FB53C50082C3177F52A6DD73D9890DDB67C8952EEF1939651B232B17C0F2EB", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 15, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 32, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 43, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 19, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 47, + "write_keys": 0 + } + ] + }, + { + "sql": "1419DC3F429D38AA633C567E9A7382C40500243679DFA77E81A8E3ECB9436EE2", + "plan": "29484AF8ECB33BD721AADA2A65E777D1777FBDEFAA439F1F3BCE3A7A45698FAB", + "items": [ + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 9, + "read_keys": 0, + "write_keys": 0 + } + ] + }, + { + "sql": "E0AA84B2CC97009BA78BF7C37813865FD62A96BA9A4C817E23DB3D84B44EB8E3", + "plan": "EA14251C3183D75A2D7D32173EED8498A7E9152AEF2BA8C9B2F842A072219831", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 13, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 14, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 7, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 11, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 27, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 22, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 9, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 27, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 14, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 26, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 74, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 16, + "read_keys": 87, + "write_keys": 0 + } + ] + }, + { + "sql": "492159AD0A7EE04AD807119CC4428D3CB23A20771C562B6E1A9E78371EA35DE4", + "plan": "D6C177EAFA7EF13512D0AB500DA057A8BF7A884A1B990C0C72A4DFB16568A67C", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 55, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 71, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 14, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 50, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 67, + "write_keys": 0 + } + ] + }, + { + "sql": "896117A03FCEE259BF656278F156459A43357C826D952FEC0D4D0F4FCF3050BF", + "plan": "76FD3241C2FE52E949FD37693EEB09D9813286ABC05F0F8972786C3EA96A07C5", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 9, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 46, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 52, + "read_keys": 107, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 17, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 17, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 37, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 22, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 36, + "read_keys": 26, + "write_keys": 0 + } + ] + }, + { + "sql": "18F09E45A25C0666FF0E6BF4A9014B4A3DB949872C9205ADD0A488E978B4C60A", + "plan": "903703F213FE900AB4EC70D41AB7012F5FD67497904A86821BCB4483D6A57137", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 55, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 24, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 12, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 9, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 28, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 19, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 31, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 15, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 9, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 23, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 13, + "read_keys": 72, + "write_keys": 0 + } + ] + }, + { + "sql": "5AB459C4AA12AB68A01DA346796D2976D8FAA241D33C2048471FF4A0A9033E05", + "plan": "5F7EF4A3381D48C704E6A8993B89773382FFE8E4D11731FA76BA1FA8FC96A45E", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 26, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 73, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 22, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 11, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 21, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 15, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 46, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 34, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 66, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 22, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 58, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 27, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 36, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 20, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 15, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 59, + "read_keys": 111, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 39, + "read_keys": 64, + "write_keys": 0 + } + ] + }, + { + "sql": "626DB098522F80B2B0AE10FC4D26CF112177504F40BEBE1227B635C7A4B1AA01", + "plan": "ED888F0D3CE1C26D0B409EC84E2E9BD2BC7CD515D08C7505B6AD8C98C491937C", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 10, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 22, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 14, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 59, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 23, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 27, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 29, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 29, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 48, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 33, + "read_keys": 77, + "write_keys": 0 + } + ] + }, + { + "sql": "F5ABBD42733CD10F7C98902F7EABACEF8D1255706DD4A44B46ED448543557884", + "plan": "7E384E4935547CF526E1F89C2395F5D1A7AF3E70BA95098A212476ECDC7760FA", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 31, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 12, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 34, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 12, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 37, + "read_keys": 86, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 12, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 33, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 16, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 21, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "F6A6F79FB7EDADFB543ECAF1F981847BAAB737684E9752E3C85ADFCEC16D19CE", + "plan": "390C381DD2EAB7649AB6C53C9BDB54A7C05746CE940C9666481F4D8030BBCFEF", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 9, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 14, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 18, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 20, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 28, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 46, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 12, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 26, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 36, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 26, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 13, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 14, + "read_keys": 39, + "write_keys": 0 + } + ] + }, + { + "sql": "51E3AD9432265FEDE8BA04AA0940DC43C72206B6C9C50F37E850E8BE0F7172AF", + "plan": "2458E77EF027357BEF2F531C41E5A098C99A523C1BEEC723B041AD48BB7257E9", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 18, + "read_keys": 87, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 23, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 104, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 15, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 74, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 22, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 68, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 14, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 68, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "4A6446D047687090FA4BA6465CC5C70269DDFC5EA8F95D594048B72155746A55", + "plan": "C1CE71E1210AAABAE57EA2800C2E231A2B3C3E141E88C6E405F3F21A631BD419", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 21, + "read_keys": 89, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 27, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 41, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 23, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 10, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 27, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 14, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 30, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 20, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 31, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 18, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 44, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 36, + "read_keys": 58, + "write_keys": 0 + } + ] + }, + { + "sql": "198CCEE1DF85924A030D67DD77A5FC0CEF89D449760B1F6D185903C7E1DF7B91", + "plan": "389D9B9408577DA0A9EC86B92DB9FF6DD43272219F17354F994C6D365FCA1C51", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 10, + "read_keys": 23, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 77, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 14, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 17, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 34, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 39, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 19, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 43, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 29, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 41, + "read_keys": 98, + "write_keys": 0 + } + ] + }, + { + "sql": "246D04EF3C995E605D1318171044C5845DEE787180401611AB8F4DFC80DBF4F0", + "plan": "4AD5B4D8C01F252BCED9E1A9E380F1A267DDCA859EBC0B55EF4D5308D263BF59", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 30, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 22, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 20, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 37, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 39, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 26, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 19, + "read_keys": 70, + "write_keys": 0 + } + ] + }, + { + "sql": "E8DBBE326A2FCAAC5FC45E9152B2723E52DE041DD3331EE24BC750836AF8E11E", + "plan": "AA9701B43B18C14D5C749A5ECAE822AECB604494355FAAD369644B4BCDDD203F", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 21, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 23, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 11, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 24, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 15, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 74, + "read_keys": 115, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 28, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 35, + "read_keys": 7, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 43, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "43E055B6C0B4A577EAD7A7D5C720F3943C2559A01CED11B8ACBA82EE265C8155", + "plan": "70D490750CBBA09D4BEC0851767F47226864A13573A8C0EB0AFBA48E32CB33A9", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 51, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 49, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 57, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 45, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 53, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 47, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 25, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 22, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 15, + "read_keys": 79, + "write_keys": 0 + } + ] + }, + { + "sql": "429D95A921A318EEA34CE35F9367AFD84A936AA4EBAC3823684E236B741F10B9", + "plan": "E74CEC347241D5182C8017D6D42C59DD135D7D6642971E2A9EBEE57632EC0225", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 29, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 13, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 41, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 61, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 17, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 25, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 69, + "read_keys": 42, + "write_keys": 0 + } + ] + }, + { + "sql": "1DCF677F8C1797D0B44AD66C4D36ABA7C46F9FEE279E9CEC5A0179474E14668A", + "plan": "555332134DD04E653E7C085C787BDFE1851405AB076A5B1777FF092545F9DA6A", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 79, + "read_keys": 94, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 8, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 62, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 55, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 35, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 13, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 17, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 12, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 13, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 27, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 17, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 8, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 55, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "B74039C49E5DC02EF553612C08632B0B9462EB874DD12FCD9BE55C019EBA5CC0", + "plan": "9DA4093C5E70BEC7A8E8807EB6F2A06044D422725E2A5A96F34ADA1B750B4D16", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 25, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 24, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 22, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 30, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 52, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 20, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 25, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 17, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 29, + "read_keys": 90, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 21, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 34, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 31, + "read_keys": 46, + "write_keys": 0 + } + ] + }, + { + "sql": "3A5BD96FCBAB9C0CE803CD16CE40508913E74D7FCEE8776A2CDC54DB5C6E01D6", + "plan": "0CE58001F183F475D1BF36A9D1E38B1D08BDF2422AAA71238E56D96774135CE0", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 29, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 68, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 71, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 53, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 24, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 9, + "read_keys": 21, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 36, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 15, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 29, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 22, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 15, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 18, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 22, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 33, + "read_keys": 4, + "write_keys": 0 + } + ] + }, + { + "sql": "F30C2E408D1D8180BF625CEC773E68E15366B1E0EAA857A734EEE77FCF619779", + "plan": "406B5C914FB39DB56BC2C964846341EF52499BB3927EEC551739A14300BFF76C", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 42, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 19, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 37, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 21, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 30, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 29, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 8, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 17, + "read_keys": 49, + "write_keys": 0 + } + ] + }, + { + "sql": "2B8E6B81EBA7339D7AD8A9092C9E8AC4E1D2B082D571DA2188678C04491462F1", + "plan": "4F7B6EB40A63021ED0B70E4B7716BE9D595AFC506914D4B21B545F2E38275297", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 18, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 115, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 32, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 41, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 37, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 31, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 9, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 55, + "read_keys": 72, + "write_keys": 0 + } + ] + }, + { + "sql": "2F7E0D3ECFB63DF35A400C5F384B15D9900990E7D5A2971399C241C4ED941DDC", + "plan": "28D9F090591E0C4D7030D6A7C1AF770F2DD616642989C5F5DB42B6364615D295", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 11, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 12, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 48, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 15, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 58, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 16, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 56, + "read_keys": 100, + "write_keys": 0 + } + ] + }, + { + "sql": "B4CEC23FF29ADF091270A597FD6E17DBB44C07DA6B7E206DA8EE62F8C793156A", + "plan": "F899437E9A50F6593FAD3E0ADEE08667E238B1E286F865E70E7EEECBEC6F8994", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 22, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 24, + "read_keys": 21, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 14, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 9, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 18, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 11, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 42, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 12, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 23, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 45, + "read_keys": 74, + "write_keys": 0 + } + ] + }, + { + "sql": "8878FD3FAAA52984DCE62F79037F68B05C925E2B96924EE4426D063CA96034FB", + "plan": "3CF099FC7C68411B95A6E04937C0DC737FA60D2FBB7E2E04784E35D52D1C434A", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 17, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 23, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 35, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 24, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 43, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 28, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 10, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 36, + "read_keys": 107, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 52, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 44, + "read_keys": 72, + "write_keys": 0 + } + ] + }, + { + "sql": "4E9E834621DF5A3DA4E1B5802318AAD995DC5183D39956C3446D35609F00E294", + "plan": "74DF3310F3DFA7C4D9F4B57EC54B41B87BF102B36AE16DC721228CB6CD06C2C7", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 20, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 14, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 15, + "read_keys": 71, + "write_keys": 0 + } + ] + }, + { + "sql": "361D6DA01AEDD622FD87DEE9B8C214489B31E1E372347A6A88A4CD48CCFD7F48", + "plan": "5371E02EB723DF07FE6CF2424FB7B8273E6565C8381C08F606FF9D1E0A78BBA5", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 11, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 18, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 14, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 38, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 15, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 33, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 12, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 37, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 19, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 86, + "read_keys": 79, + "write_keys": 0 + } + ] + }, + { + "sql": "180A969E9B667823704B1B8F86D320AE031FB6BFC3B87B77998151879C5CC67C", + "plan": "7D0802496BF5CD620BD70212456DD3CF40DE414999265E35008A1ECD7378BA57", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 114, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 8, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 29, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 25, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 91, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 15, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 55, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 13, + "read_keys": 76, + "write_keys": 0 + } + ] + }, + { + "sql": "CEF17BF149F77D1B64E224212649E90A073186F7FE4943FA57CF7B12DA3D3282", + "plan": "8FB75CA3F375DA0BDFB24F381C4E178CBF2DED4215C889BF92E60903EBED28CA", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 48, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 23, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 12, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 18, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 50, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 14, + "read_keys": 28, + "write_keys": 0 + } + ] + }, + { + "sql": "743EC15386749F9815ECF851D6003DF69846FE2911729AB1BEA5C77CDCF10013", + "plan": "A7CA65CE801E6334A10CC3E2391C2A7F28ABE1791C27559E822AED6C50A4FAD5", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 9, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 45, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 8, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 36, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 18, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 34, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 25, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 17, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "8D02E584FC3699E33FFAF75D7E20367234C31498F959B5495BB9D070B26B18FC", + "plan": "4B94CDDFE820769EBA6ADF8BD8E7A10FA581F565618EFD0069A83819DBEB95AD", + "items": [ + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 55, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 21, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 16, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 12, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 12, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 12, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 10, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 14, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "27C648EE1ED5CE1DAE9E0EDE8C35EE412B94AD908B9E370FF2F71E0E87514F70", + "plan": "7B52E2BC4CBE9D8C04C3CEDC6C34FEAAA77AB2044A912756998D24D42141EED0", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 34, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 75, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 18, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 9, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 35, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 22, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 15, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 17, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 60, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "7751BD4F5A28EA7D6C7A2FBD2A371B31AE4FBCE3CEF3BCFE263E6475C18A9619", + "plan": "55C49EFEEC8685171EF9A7740483690F7BF0EDE6DF1F067CBF9EE7B3747B8336", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 26, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 40, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 9, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 26, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 32, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 41, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 32, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 53, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 54, + "read_keys": 123, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 23, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 32, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 43, + "read_keys": 95, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 78, + "write_keys": 0 + } + ] + }, + { + "sql": "D3DCDD542A8E5CAFE812058AB4BF3BF73B2E413DC76B9268943B0B32F5858776", + "plan": "186444E47BFA4EEF4F16C543F366662D254362A940583BB7785024D0A9A191F6", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 58, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 21, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 37, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 20, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 7, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 13, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 22, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 14, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 18, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 38, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 8, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 17, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 36, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 24, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 27, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 33, + "read_keys": 114, + "write_keys": 0 + } + ] + }, + { + "sql": "CFF0C9211DB0BAAF3563F35C0F29AD2957BA6CC347075C4C5976792511049D91", + "plan": "E1B767A818E96F2ACA224B28237E8FFBFDD63B9A59A2E3A26D1FA37E66903ACA", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 24, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 14, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 18, + "read_keys": 94, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 38, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 16, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 32, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 25, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 13, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 15, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 18, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 55, + "read_keys": 69, + "write_keys": 0 + } + ] + }, + { + "sql": "CCFDC9C59E78FD064A1D796865659A95FDEB4A01305830D0C953DF4E049AA9D0", + "plan": "ED352B1A8475BE3F48D9509A2299C269FB20FACD8E0CA3AC63AE1BA0FDA0A4A5", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 31, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 21, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 8, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 14, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 25, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 17, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 23, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 25, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 14, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 16, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 12, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 18, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 28, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 25, + "read_keys": 66, + "write_keys": 0 + } + ] + }, + { + "sql": "DDC7E740EA535CBA6DFAC137DC04A77710F8B10719CCDA4588C2AB19E6D76A6E", + "plan": "A9A07BB39EB4B35C71B41B166706434F1EEB05032BED8804593035CD2AE5AB86", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 12, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 27, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 20, + "read_keys": 16, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 21, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 55, + "read_keys": 108, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 30, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 27, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 32, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 30, + "read_keys": 58, + "write_keys": 0 + } + ] + }, + { + "sql": "AF4D5DD290252C61E1C684D2FC89060924BC1FDDF823C77F1614DADC5FD736A3", + "plan": "9E497A15A858FB12DAC976AA47FEDC36E9948B626A6F484D44953EA28E2B789E", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 27, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 26, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 21, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 79, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 25, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 37, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 10, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 17, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 45, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 13, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 36, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 50, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 60, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 32, + "read_keys": 120, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 27, + "read_keys": 78, + "write_keys": 0 + } + ] + }, + { + "sql": "BB87E05ADBF0A56660DFB9B9328DA6058D0AD4736CC02A63653CC0C211989C2C", + "plan": "6A2330A1D7F10A759A89C0F153D519F9F26B8989F8937B2BFBC62BF6186A0091", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 45, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 10, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 8, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 52, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 24, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 28, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "6D595ED5FD6F383704EE5A01D59CAA136C9FB1B46CDBB65C488E4E08CD33355B", + "plan": "3C22AC473B74B1CBFC9160F76C9DF574DADFD6DC3E59BD7FD231D96E7D260EFE", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 25, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 38, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 15, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 24, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 70, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 22, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 69, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 27, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 12, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 33, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 15, + "read_keys": 30, + "write_keys": 0 + } + ] + }, + { + "sql": "9BA4AF8D9D3E66B850B153C9A73AB364949448946E5CE2D6F3EA9C77F2666979", + "plan": "28FDB0353B189FCC5034CCF5428510D99DD8217A014EB2C760A6FBBD6EDB91B5", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 50, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 8, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 8, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 13, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 61, + "read_keys": 39, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 21, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 16, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 15, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 22, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 77, + "read_keys": 97, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 10, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 16, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 52, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 103, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 25, + "read_keys": 94, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 12, + "read_keys": 64, + "write_keys": 0 + } + ] + }, + { + "sql": "ADFE198CD895835F47815CF154167CDDE052A7D448148D8B74C5998627918664", + "plan": "0645580AAA0317633B2D0952E5960323786870CC4857FFC2309E02039E70EE84", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 11, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 11, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 11, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 20, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 17, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 18, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 31, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 10, + "read_keys": 0, + "write_keys": 0 + } + ] + }, + { + "sql": "B7F760466DB12664357A2F00D058FA57F953107E99F07496016D2459F91B2F03", + "plan": "A7148E86E40F71838A556DE0F33F242275F5ED4898B570924802F2782AC8919C", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 51, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 23, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 73, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 16, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 16, + "read_keys": 115, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 21, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 14, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 13, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 66, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 36, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 39, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 43, + "read_keys": 68, + "write_keys": 0 + } + ] + }, + { + "sql": "473E95F778DC93D45C8D3A75C729613B26268FDD67152ACE0EE61B422E283913", + "plan": "AF3AE2576CBB181C04B9B5751FE4D1ED4A7978618937240729AB7A2FD58659F6", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 23, + "read_keys": 85, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 14, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 24, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 8, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 35, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 14, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 47, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 17, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 34, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 44, + "read_keys": 110, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 32, + "read_keys": 52, + "write_keys": 0 + } + ] + }, + { + "sql": "14AC231E61F3EC9D89537F0850A7FEBB691F7C12C18C819C57DB248CF137FA2A", + "plan": "2CBDB20E38DAD7471D707F90A82176BE9742DCBA6E960FF47443422FFAF72A15", + "items": [ + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 58, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 20, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 35, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 20, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 14, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 60, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 46, + "read_keys": 93, + "write_keys": 0 + } + ] + }, + { + "sql": "E36FD6D60845F4707EA2A31A8ED2165E9FF1477B02D95F8B9EE2E678AE85EC03", + "plan": "6233D0663569F2A51C3EDA1F5043C80333B3EDDAFAFA9185E4EEBF701BBC2D44", + "items": [ + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 10, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 71, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 85, + "read_keys": 93, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 20, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 27, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 27, + "read_keys": 54, + "write_keys": 0 + } + ] + }, + { + "sql": "573E0E1217DCD8B73210A9ED77E7E0B92583C0CA4A68313D067639641A9688AD", + "plan": "A6C0CFAB5C4444868A10B19434C42BF23F79E5FC0CDB7322635CCA7DCACC2924", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 31, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 42, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 10, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 19, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 26, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 21, + "read_keys": 71, + "write_keys": 0 + } + ] + }, + { + "sql": "7FCAE873BFDF1F51C8D3CDC410440623487DE20C5425393FFD6B57F77E61E1CC", + "plan": "3923CDAD0C9E8BABCA7F0D6B7DBBF7E8A304D52C079E7563748D57385C34A50E", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 17, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 15, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 37, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 33, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 59, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 9, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 76, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 21, + "read_keys": 104, + "write_keys": 0 + } + ] + }, + { + "sql": "765A07DC6067F6D0E37F376074C6AF24F96BBD82DED3E0220E1CF856AADA8FF4", + "plan": "830B8B042EEB7FA15F4FCB98ADFD0D2297BD97564479C3E379127DBE1032D155", + "items": [ + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 8, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 16, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 23, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 18, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 15, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 16, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 28, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 17, + "read_keys": 87, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 14, + "read_keys": 27, + "write_keys": 0 + } + ] + }, + { + "sql": "BF2478EB7CB69CEBBDBB1107FA5AE097A42481DEAB06AC793764CB0BD8BC7232", + "plan": "ED1DC65F5E2B504AF705FB7AA1E10AB826F7B193F9D8FB6A4E50FD425B42C5D5", + "items": [ + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 14, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 10, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 12, + "read_keys": 40, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 67, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 21, + "read_keys": 73, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 81, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 10, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 19, + "read_keys": 35, + "write_keys": 0 + } + ] + }, + { + "sql": "1D8CEDD0EEBD2CAB950714532325A1D70150A746F076CCEFF634AF02008BDF1B", + "plan": "BC47A9C632C8D2E49057A66EEE00291B844FFA9751D0E78CAA32B252399B969E", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 16, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 13, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 25, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 37, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 34, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 12, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 13, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 20, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 41, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 24, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 18, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 76, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 64, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 22, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 25, + "read_keys": 32, + "write_keys": 0 + } + ] + }, + { + "sql": "3D4886BDBBA326748071FA508B87D7B796C5B469ADBF041F4499C9CEDA41C7BF", + "plan": "6787BE0B5022436A4B07DC52740B194487579C4410F5255C3385B27E1A31F0E6", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 59, + "read_keys": 103, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 13, + "read_keys": 27, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 29, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 27, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 9, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 66, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 25, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 31, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 10, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 31, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "B20E82A07B110CEC03C9563E34E322A991895B47A4EBA540174D69C8B83867DA", + "plan": "F0BA1EB4DB0E76A485C05D36D33D13005640B61B5D3A187029AB88CC653783BC", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 42, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 31, + "read_keys": 91, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 16, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 41, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 17, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 25, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 26, + "read_keys": 61, + "write_keys": 0 + } + ] + }, + { + "sql": "BB9CC401B279BD2715996FBD8D96D549C9DA2442B91B35C182A9D4B7283175F3", + "plan": "8EF567563FBE486F600B6F41B65B18C616BFBFA028B4EDE52E4C279FFDD30189", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 48, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 55, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 24, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 23, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 24, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 15, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 41, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 17, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 40, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 33, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 33, + "read_keys": 109, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 14, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 30, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 21, + "read_keys": 104, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 81, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 36, + "read_keys": 51, + "write_keys": 0 + } + ] + }, + { + "sql": "6E0F197042326339EC994A6AF98CBE9207D8442F9315B9C0C66C8A94114D61F1", + "plan": "97D2D8871194E616C65D4288B01547B290FE186AB686DCC763B9A7D44DF91FA4", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 15, + "read_keys": 50, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 26, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 23, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 10, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 27, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 17, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 11, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 33, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 29, + "read_keys": 58, + "write_keys": 0 + } + ] + }, + { + "sql": "48C905EC24DEF6BC893E3844433990654C4666044ADC01DB1E00E7AE97BD9470", + "plan": "321FBA13EA40EF7659255B321C28AD975FEAF1FA4A5F64232878B049D869A8ED", + "items": [ + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 16, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 20, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 15, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 25, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 15, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 11, + "read_keys": 64, + "write_keys": 0 + } + ] + }, + { + "sql": "42275A09FB0255538BB570D3A3D74F0656029B1409A5E6C8C64B61427C0EB69E", + "plan": "74C29434E93AA608BA078477C486739C891EA71301FF5203C9DCC8A93FA71F0C", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 24, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 26, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 22, + "read_keys": 36, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 23, + "read_keys": 22, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 13, + "read_keys": 23, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 16, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 27, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 62, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 23, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 49, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 15, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 40, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 33, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 75, + "read_keys": 36, + "write_keys": 0 + } + ] + }, + { + "sql": "709EA9859361FBCA6A2502C50BF779C963580A17B06711DDEBC8ECC0A3022A7A", + "plan": "4C9DE76A66A4B16EA46B59865115771309276693FFA1DD857E938E8D8254FD67", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 26, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 67, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 24, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 11, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 21, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 40, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 63, + "read_keys": 109, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 21, + "read_keys": 49, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 21, + "read_keys": 73, + "write_keys": 0 + } + ] + }, + { + "sql": "43A1466D9335F28D45042300CED2C5445E23C2C48065330B4B3C5C8BF47F750B", + "plan": "DF7D85E104ECABB4F3C9A93E09D2BBCCF01FD50003AE5BF8A2D70616E0051A99", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 13, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 38, + "read_keys": 28, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 27, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 23, + "read_keys": 41, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 52, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 24, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 32, + "read_keys": 83, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 17, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 11, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 44, + "read_keys": 97, + "write_keys": 0 + } + ] + }, + { + "sql": "E88761482F0B1A8A3259F9F9D6AEC047D05526145BC9AF112B8C08A744A44251", + "plan": "231E8823C492E3954C4E06953DEA70BFB4EEC02F5964FB73A35AC2340E19960A", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 9, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 47, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 42, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 14, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 31, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 28, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 33, + "read_keys": 103, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 8, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 8, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 22, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 41, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 12, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 14, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 27, + "read_keys": 71, + "write_keys": 0 + } + ] + }, + { + "sql": "002449832CF721E6CF33E697508544A716BD6DE8AC9EEE8E56EB890C02E6B8D9", + "plan": "1FDE5704A33BB139D08AA6D9B97106CB1DFB2368D1C063F4C84DEAD3464F0E5B", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 19, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 24, + "read_keys": 0, + "write_keys": 0 + } + ] + }, + { + "sql": "5339C6159FC04CA4A07E62D12E85BB885B69783C8C64670C0DD00F86B74063F2", + "plan": "14660415277F8CFE02FB0F78712C0C772274CA2D05CEB48A4088F947B421312F", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 26, + "read_keys": 87, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 11, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 20, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 14, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 38, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 14, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 28, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 18, + "read_keys": 36, + "write_keys": 0 + } + ] + }, + { + "sql": "1057B40CC0435FF903A42D00DDB3CE073BC73A9A51D23D4C49E3EA4F096A1952", + "plan": "1C6A2F3CE2E47DFB814713F835565FDC67871389FE3CAB97C0295A47851036B4", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 24, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 10, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 55, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 16, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 7, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 30, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 9, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 20, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 26, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 12, + "read_keys": 61, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 26, + "read_keys": 38, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 29, + "read_keys": 74, + "write_keys": 0 + } + ] + }, + { + "sql": "D2D92DF419B0E31022BDC12EE132D0BEADB0DF15A9CA0227CFC9FC2C3C236A67", + "plan": "7C8645A174A875B3A757F6A176A5BE08612596501E20D1AE37410DAFBA6D1995", + "items": [ + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 17, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 13, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 19, + "read_keys": 102, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 19, + "read_keys": 37, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 12, + "read_keys": 51, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 11, + "read_keys": 0, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 29, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 10, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 31, + "read_keys": 71, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 19, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 67, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 30, + "read_keys": 70, + "write_keys": 0 + } + ] + }, + { + "sql": "B01F0CC462A23785507B10E71CBD3EF475C9AE593FE701F8A85F3CE067225C67", + "plan": "E92D53CA0CF5B6D073C5EAADA3405011E648DC9DDBD60C79C8A9BB1D661B02EE", + "items": [ + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 39, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 49, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 31, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 27, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 13, + "read_keys": 25, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 33, + "read_keys": 31, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 10, + "read_keys": 34, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 10, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 8, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 11, + "read_keys": 81, + "write_keys": 0 + } + ] + }, + { + "sql": "3CDF1C3B0CF4566F0A89101BEA932EFB28EFFC67561A9733EAB27AC5AF68036E", + "plan": "3C3AFC829CEE34311D7AF1A8981844CD8FDBDD7C407AFA275CD1CCE4EB439488", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 13, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 21, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 68, + "read_keys": 57, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 35, + "read_keys": 104, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 15, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 31, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 18, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 22, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 11, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 19, + "read_keys": 52, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 55, + "read_keys": 35, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 11, + "read_keys": 5, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 84, + "read_keys": 26, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 19, + "read_keys": 84, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 45, + "read_keys": 2, + "write_keys": 0 + } + ] + }, + { + "sql": "B35A74757B53D6940CB5701A7CF311638D7089FAF177655DDF3C43B1132A58E4", + "plan": "3C60F04B516AA698491C537C907BAAEA1BA668A987C0D9783767D3CF9E8315A1", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 36, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 25, + "read_keys": 58, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 12, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 15, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 10, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 8, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 36, + "read_keys": 45, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 30, + "read_keys": 96, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 19, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 32, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 68, + "read_keys": 24, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 17, + "read_keys": 88, + "write_keys": 0 + } + ] + }, + { + "sql": "7C450A505576BDEAF6059DD8414040C43984EBCD7C59D3AECA77EC2E17FE2EF5", + "plan": "760EDD8AD74D9D150DCAA35F0A29EFD2CD98FAD1E1119B3D7546F2939607B6DF", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 35, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 94, + "read_keys": 98, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 12, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 45, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 27, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 24, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 10, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 28, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 28, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 10, + "read_keys": 66, + "write_keys": 0 + } + ] + }, + { + "sql": "1C209EA24CA9B3C0EE21DD4F5AC777374DED2B7A706892BC02B624989D8982D5", + "plan": "E71DEFA352425B465DEFC40A5ABD631A8BAA701D05FDED5027238C4383CF44C1", + "items": [ + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 11, + "read_keys": 4, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 12, + "read_keys": 62, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 27, + "read_keys": 91, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 8, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 22, + "read_keys": 100, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 17, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 10, + "read_keys": 60, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 43, + "read_keys": 115, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 9, + "read_keys": 29, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 20, + "read_keys": 62, + "write_keys": 0 + } + ] + }, + { + "sql": "576A9028F0AC7B469623DACFB83858F2252B0B6D202E071CD5A773C15C0110D9", + "plan": "6981C2345C6F6FA4EC375A16BEDD581F64AE416352CE4420C73EA867085ABE83", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 15, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 8, + "read_keys": 65, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 12, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 9, + "read_keys": 47, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 7, + "read_keys": 48, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 12, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 88, + "read_keys": 80, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 25, + "read_keys": 82, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 86, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 21, + "read_keys": 30, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 14, + "read_keys": 69, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 12, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 18, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 63, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 15, + "read_keys": 79, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 14, + "read_keys": 32, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 11, + "read_keys": 1, + "write_keys": 0 + } + ] + }, + { + "sql": "6EA2DAB1BCF79070573AC26BB44E81023CB7E80E4790465D97D730B866FA464E", + "plan": "91B83637B90AFF8B414DC0B99B05EE80E78AEEB61B78CA726E3E8126F45B80BC", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 19, + "read_keys": 66, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 24, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 10, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 50, + "read_keys": 75, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 36, + "read_keys": 43, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 21, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 15, + "read_keys": 77, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 12, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 24, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 20, + "read_keys": 56, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 36, + "read_keys": 64, + "write_keys": 0 + } + ] + }, + { + "sql": "59FE77DF533018403A738D3E824C5E7BDBB590D92C3E35A122CEA44A88778667", + "plan": "8DFA88F42E05745876E67AF57CECEC0BD93B561645D6D01FAB967EEA72411236", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 33, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 7, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 12, + "read_keys": 54, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 21, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 11, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 46, + "read_keys": 91, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 14, + "read_keys": 44, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 18, + "read_keys": 2, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 11, + "read_keys": 74, + "write_keys": 0 + } + ] + }, + { + "sql": "852F1E4F5AC14D75758D0E5D459461657284322B4812E4425A4000C2ECBEA114", + "plan": "3D7CCA541E4F1C6DC8A2AE825279ED197B740334BF3AC3B0EDB7AA6C312B7E2E", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 26, + "read_keys": 59, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 12, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 25, + "read_keys": 68, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 21, + "read_keys": 78, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 33, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 34, + "read_keys": 1, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 25, + "read_keys": 99, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 75, + "read_keys": 57, + "write_keys": 0 + } + ] + }, + { + "sql": "04D3CDDF3B02D17A5A2AC36D6C132E12F05861C77B206B240FDCA426183523B0", + "plan": "292CC15FF162A38383804786E73A098BE2B653B2BA9602BF7EEC7883C9A1ED82", + "items": [ + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 22, + "read_keys": 70, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 31, + "read_keys": 53, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 17, + "read_keys": 42, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 20, + "read_keys": 63, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 22, + "read_keys": 33, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 84, + "read_keys": 69, + "write_keys": 0 + } + ] + }, + { + "sql": "CE82FE3DDDC94B035B667D9759C43AFE2BD8D9E215D902569C1A6956B7EDB33D", + "plan": "1A85DD3EF305F16957BB36B24696FB742203A39E1240528783A0060A15074922", + "items": [ + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 56, + "read_keys": 67, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 104, + "read_keys": 72, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 16, + "read_keys": 64, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 45, + "read_keys": 6, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 44, + "read_keys": 88, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 9, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 14, + "read_keys": 3, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 21, + "read_keys": 73, + "write_keys": 0 + } + ] + }, + { + "sql": "", + "plan": "", + "items": [ + { + "timestamp_sec": 1709654638, + "cpu_time_ms": 447, + "read_keys": 20498, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654635, + "cpu_time_ms": 395, + "read_keys": 20163, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654632, + "cpu_time_ms": 368, + "read_keys": 21099, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654629, + "cpu_time_ms": 413, + "read_keys": 21074, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654626, + "cpu_time_ms": 360, + "read_keys": 20965, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654623, + "cpu_time_ms": 286, + "read_keys": 20495, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654620, + "cpu_time_ms": 182, + "read_keys": 19653, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654617, + "cpu_time_ms": 161, + "read_keys": 18918, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654614, + "cpu_time_ms": 276, + "read_keys": 18670, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654611, + "cpu_time_ms": 223, + "read_keys": 18942, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654639, + "cpu_time_ms": 383, + "read_keys": 20664, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654636, + "cpu_time_ms": 268, + "read_keys": 20852, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654633, + "cpu_time_ms": 321, + "read_keys": 20471, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654630, + "cpu_time_ms": 309, + "read_keys": 20938, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654627, + "cpu_time_ms": 278, + "read_keys": 20207, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654624, + "cpu_time_ms": 436, + "read_keys": 21231, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654621, + "cpu_time_ms": 319, + "read_keys": 19376, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654618, + "cpu_time_ms": 160, + "read_keys": 19830, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654615, + "cpu_time_ms": 196, + "read_keys": 19363, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654612, + "cpu_time_ms": 298, + "read_keys": 20174, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654637, + "cpu_time_ms": 266, + "read_keys": 21002, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654634, + "cpu_time_ms": 301, + "read_keys": 21300, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654631, + "cpu_time_ms": 382, + "read_keys": 20952, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654628, + "cpu_time_ms": 283, + "read_keys": 20943, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654625, + "cpu_time_ms": 417, + "read_keys": 20862, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654622, + "cpu_time_ms": 362, + "read_keys": 20774, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654619, + "cpu_time_ms": 237, + "read_keys": 19924, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654616, + "cpu_time_ms": 270, + "read_keys": 18631, + "write_keys": 0 + }, + { + "timestamp_sec": 1709654613, + "cpu_time_ms": 358, + "read_keys": 19630, + "write_keys": 0 + } + ] + } +] \ No newline at end of file diff --git a/extensions/topsql/src/upstream/tls_proxy.rs b/src/sources/topsql/upstream/tls_proxy.rs similarity index 94% rename from extensions/topsql/src/upstream/tls_proxy.rs rename to src/sources/topsql/upstream/tls_proxy.rs index 28fe0bf..1e1650b 100644 --- a/extensions/topsql/src/upstream/tls_proxy.rs +++ b/src/sources/topsql/upstream/tls_proxy.rs @@ -4,9 +4,9 @@ use tokio::io::AsyncWriteExt; use tokio::net::{TcpListener, TcpStream}; use tokio_openssl::SslStream; use tracing_futures::Instrument; -use vector::tls::{tls_connector_builder, MaybeTlsSettings, TlsConfig}; +use vector_lib::tls::{tls_connector_builder, MaybeTlsSettings, TlsConfig}; -use crate::shutdown::ShutdownSubscriber; +use crate::sources::topsql::shutdown::ShutdownSubscriber; pub async fn tls_proxy( tls_config: &Option, diff --git a/extensions/topsql/src/upstream/utils.rs b/src/sources/topsql/upstream/utils.rs similarity index 65% rename from extensions/topsql/src/upstream/utils.rs rename to src/sources/topsql/upstream/utils.rs index b68b137..7c46a48 100644 --- a/extensions/topsql/src/upstream/utils.rs +++ b/src/sources/topsql/upstream/utils.rs @@ -3,9 +3,10 @@ use std::collections::BTreeMap; use bytes::Bytes; use chrono::{DateTime, Utc}; use ordered_float::NotNan; -use vector::event::{LogEvent, Value}; +use vector::event::{KeyString, Value}; +use vector_lib::event::LogEvent; -use crate::upstream::consts::{ +use crate::sources::topsql::upstream::consts::{ LABEL_INSTANCE, LABEL_INSTANCE_TYPE, LABEL_NAME, METRIC_NAME_INSTANCE, }; @@ -14,9 +15,9 @@ pub fn make_metric_like_log_event( timestamps: &[DateTime], values: &[f64], ) -> LogEvent { - let mut labels_map = BTreeMap::new(); + let mut labels_map = BTreeMap::::new(); for (k, v) in labels { - labels_map.insert(k.to_string(), Value::Bytes(Bytes::from(v.clone()))); + labels_map.insert((*k).into(), Value::Bytes(Bytes::from(v.clone()))); } let timestamps_vec = timestamps @@ -28,10 +29,10 @@ pub fn make_metric_like_log_event( .map(|v| Value::Float(NotNan::new(*v).unwrap())) .collect::>(); - let mut log = BTreeMap::new(); - log.insert("labels".to_owned(), Value::Object(labels_map)); - log.insert("timestamps".to_owned(), Value::Array(timestamps_vec)); - log.insert("values".to_owned(), Value::Array(values_vec)); + let mut log = BTreeMap::::new(); + log.insert("labels".into(), Value::Object(labels_map)); + log.insert("timestamps".into(), Value::Array(timestamps_vec)); + log.insert("values".into(), Value::Array(values_vec)); log.into() } diff --git a/vdev/Cargo.toml b/vdev/Cargo.toml new file mode 100644 index 0000000..580673c --- /dev/null +++ b/vdev/Cargo.toml @@ -0,0 +1,39 @@ +[package] +name = "vdev" +version = "0.1.0" +edition = "2021" +authors = ["Vector Contributors "] +license = "MPL-2.0" +readme = "README.md" +publish = false + +[dependencies] +anyhow = "1.0.81" +cached = "0.49.2" +chrono.workspace = true +clap.workspace = true +clap-verbosity-flag = "2.2.0" +clap_complete = "4.5.1" +confy = "0.6.1" +directories = "5.0.1" +# remove this when stabilized https://doc.rust-lang.org/stable/std/path/fn.absolute.html +dunce = "1.0.4" +glob = { version = "0.3.1", default-features = false } +hex = "0.4.3" +indexmap.workspace = true +indicatif = { version = "0.17.8", features = ["improved_unicode"] } +itertools = "0.12.1" +log = "0.4.21" +once_cell = "1.19" +os_info = { version = "3.8.1", default-features = false } +# watch https://github.com/epage/anstyle for official interop with Clap +owo-colors = { version = "4.0.0", features = ["supports-colors"] } +paste = "1.0.14" +regex = { version = "1.10.3", default-features = false, features = ["std", "perf"] } +reqwest = { version = "0.11", features = ["json", "blocking"] } +serde.workspace = true +serde_json.workspace = true +serde_yaml = "0.9.33" +sha2 = "0.10.8" +tempfile = "3.10.1" +toml.workspace = true diff --git a/vdev/LICENSE-vector b/vdev/LICENSE-vector new file mode 100644 index 0000000..e87a115 --- /dev/null +++ b/vdev/LICENSE-vector @@ -0,0 +1,363 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. + diff --git a/vdev/README.md b/vdev/README.md new file mode 100644 index 0000000..befaefa --- /dev/null +++ b/vdev/README.md @@ -0,0 +1,81 @@ +# vdev + +----- + +This is the command line tooling for Vector development. + +Table of Contents: + +- [Installation](#installation) +- [Configuration](#configuration) + - [Repository](#repository) + - [Starship](#starship) +- [CLI](#cli) +- [Running Tests](#running-tests) + +## Pre-requisites + +This assumes that you have the following tools installed: + +- cargo-nextest - https://nexte.st/ + +## Installation + +Run the following command from the root of the Vector repository: + +```text +cargo install -f --path vdev +``` + +## Configuration + +### Repository + +Setting the path to the repository explicitly allows the application to be used at any time no matter the current working directory. + +```text +vdev config set repo . +``` + +To test, enter your home directory and then run: + +```text +vdev exec ls +``` + +### Starship + +A custom command for the [Starship](https://starship.rs) prompt is available. + +```toml +format = """ +... +${custom.vdev}\ +... +$line_break\ +... +$character""" + +# + +[custom.vdev] +command = "vdev meta starship" +when = true +# Windows +# shell = ["cmd", "/C"] +# Other +# shell = ["sh", "--norc"] +``` + +## CLI + +The CLI uses [Clap](https://github.com/clap-rs/clap) with the `derive` construction mechanism and is stored in the [commands](src/commands) directory. + +Every command group/namespace has its own directory with a `cli` module, including the root `vdev` command group. All commands have an `exec` method that provides the actual implementation, which in the case of command groups will be calling sub-commands. + + +## Running Tests + +Unit tests can be run by calling `cargo vdev test`. + +Integration tests are not run by default when running`cargo vdev test`. Instead, they are accessible via the integration subcommand (example: `cargo vdev int test aws` runs aws-related integration tests). You can find the list of available integration tests using `cargo vdev int show`. Integration tests require docker or podman to run. diff --git a/vdev/src/app.rs b/vdev/src/app.rs new file mode 100644 index 0000000..9deef77 --- /dev/null +++ b/vdev/src/app.rs @@ -0,0 +1,251 @@ +use std::ffi::{OsStr, OsString}; +pub use std::process::Command; +use std::{ + borrow::Cow, env, io::Read, path::PathBuf, process::ExitStatus, process::Stdio, sync::OnceLock, + time::Duration, +}; + +use anyhow::{bail, Context as _, Result}; +use indicatif::{ProgressBar, ProgressStyle}; +use log::LevelFilter; +use once_cell::sync::Lazy; + +use crate::{config::Config, git, platform, util}; + +// Use the `bash` interpreter included as part of the standard `git` install for our default shell +// if nothing is specified in the environment. +#[cfg(windows)] +const DEFAULT_SHELL: &str = "C:\\Program Files\\Git\\bin\\bash.EXE"; + +// This default is not currently used on non-Windows, so this is just a placeholder for now. +#[cfg(not(windows))] +const DEFAULT_SHELL: &str = "/bin/sh"; + +// Extract the shell from the environment variable `$SHELL` and substitute the above default value +// if it isn't set. +pub static SHELL: Lazy = + Lazy::new(|| (env::var_os("SHELL").unwrap_or_else(|| DEFAULT_SHELL.into()))); + +static VERBOSITY: OnceLock = OnceLock::new(); +static CONFIG: OnceLock = OnceLock::new(); +static PATH: OnceLock = OnceLock::new(); + +pub fn verbosity() -> &'static LevelFilter { + VERBOSITY.get().expect("verbosity is not initialized") +} + +pub fn config() -> &'static Config { + CONFIG.get().expect("config is not initialized") +} + +pub fn path() -> &'static String { + PATH.get().expect("path is not initialized") +} + +pub fn set_repo_dir() -> Result<()> { + env::set_current_dir(path()).context("Could not change directory") +} + +pub fn version() -> Result { + let mut version = util::get_version()?; + + let channel = util::get_channel(); + + if channel == "release" { + let head = util::git_head()?; + if !head.status.success() { + let error = String::from_utf8_lossy(&head.stderr); + bail!("Error running `git describe`:\n{error}"); + } + let tag = String::from_utf8_lossy(&head.stdout).trim().to_string(); + if tag != format!("v{version}") { + bail!("On latest release channel and tag {tag:?} is different from Cargo.toml {version:?}. Aborting"); + } + + // extend version for custom builds if not already + } else if channel == "custom" && !version.contains("custom") { + let sha = git::get_git_sha()?; + + // use '.' instead of '-' or '_' to avoid issues with rpm and deb package naming + // format requirements. + version = format!("{version}.custom.{sha}"); + } + + Ok(version) +} + +/// Overlay some extra helper functions onto `std::process::Command` +pub trait CommandExt { + fn script(script: &str) -> Self; + fn in_repo(&mut self) -> &mut Self; + fn check_output(&mut self) -> Result; + fn check_run(&mut self) -> Result<()>; + fn run(&mut self) -> Result; + fn wait(&mut self, message: impl Into>) -> Result<()>; + fn pre_exec(&self); + fn features(&mut self, features: &[String]) -> &mut Self; +} + +impl CommandExt for Command { + /// Create a new command to execute the named script in the repository `scripts` directory. + fn script(script: &str) -> Self { + let path: PathBuf = [path(), "scripts", script].into_iter().collect(); + if cfg!(windows) { + // On Windows, all scripts must be run through an explicit interpreter. + let mut command = Command::new(&*SHELL); + command.arg(path); + command + } else { + // On all other systems, we can run scripts directly. + Command::new(path) + } + } + + /// Set the command's working directory to the repository directory. + fn in_repo(&mut self) -> &mut Self { + self.current_dir(path()) + } + + /// Run the command and capture its output. + fn check_output(&mut self) -> Result { + // Set up the command's stdout to be piped, so we can capture it + self.pre_exec(); + self.stdout(Stdio::piped()); + + // Spawn the process + let mut child = self.spawn()?; + + // Read the output from child.stdout into a buffer + let mut buffer = Vec::new(); + child.stdout.take().unwrap().read_to_end(&mut buffer)?; + + // Catch the exit code + let status = child.wait()?; + // There are commands that might fail with stdout, but we probably do not + // want to capture + // If the exit code is non-zero, return an error with the command, exit code, and stderr output + if !status.success() { + let stdout = String::from_utf8_lossy(&buffer); + bail!( + "Command: {:?}\nfailed with exit code: {}\n\noutput:\n{}", + self, + status.code().unwrap(), + stdout + ); + } + + // If the command exits successfully, return the output as a string + Ok(String::from_utf8(buffer)?) + } + + /// Run the command and catch its exit code. + fn run(&mut self) -> Result { + self.pre_exec(); + self.status().map_err(Into::into) + } + + fn check_run(&mut self) -> Result<()> { + let status = self.run()?; + if status.success() { + Ok(()) + } else { + let exit = status.code().unwrap(); + bail!("command: {self:?}\n failed with exit code: {exit}") + } + } + + /// Run the command, capture its output, and display a progress bar while it's + /// executing. Intended to be used for long-running processes with little interaction. + fn wait(&mut self, message: impl Into>) -> Result<()> { + self.pre_exec(); + + let progress_bar = get_progress_bar()?; + progress_bar.set_message(message); + + let result = self.output(); + progress_bar.finish_and_clear(); + + let Ok(output) = result else { + bail!("could not run command") + }; + + if output.status.success() { + Ok(()) + } else { + bail!( + "{}\nfailed with exit code: {}", + String::from_utf8(output.stdout)?, + output.status.code().unwrap() + ) + } + } + + /// Print out a pre-execution debug message. + fn pre_exec(&self) { + debug!("Executing: {self:?}"); + if let Some(cwd) = self.get_current_dir() { + debug!(" in working directory {cwd:?}"); + } + for (key, value) in self.get_envs() { + let key = key.to_string_lossy(); + if let Some(value) = value { + debug!(" ${key}={:?}", value.to_string_lossy()); + } else { + debug!(" unset ${key}"); + } + } + } + + fn features(&mut self, features: &[String]) -> &mut Self { + self.arg("--no-default-features"); + self.arg("--features"); + if features.is_empty() { + self.arg(platform::default_features()); + } else { + self.arg(features.join(",")); + } + self + } +} + +/// Short-cut wrapper to create a new command, feed in the args, set the working directory, and then +/// run it, checking the resulting exit code. +pub fn exec>( + program: &str, + args: impl IntoIterator, + in_repo: bool, +) -> Result<()> { + let mut command = match program.strip_prefix("scripts/") { + Some(script) => Command::script(script), + None => Command::new(program), + }; + command.args(args); + if in_repo { + command.in_repo(); + } + command.check_run() +} + +fn get_progress_bar() -> Result { + let progress_bar = ProgressBar::new_spinner(); + progress_bar.enable_steady_tick(Duration::from_millis(125)); + progress_bar.set_style( + ProgressStyle::with_template("{spinner} {msg:.magenta.bold}")? + // https://github.com/sindresorhus/cli-spinners/blob/master/spinners.json + .tick_strings(&["∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"]), + ); + + Ok(progress_bar) +} + +pub fn set_global_verbosity(verbosity: LevelFilter) { + VERBOSITY.set(verbosity).expect("could not set verbosity"); +} + +pub fn set_global_config(config: Config) { + CONFIG.set(config).expect("could not set config"); +} + +pub fn set_global_path(path: String) { + PATH.set(path).expect("could not set path"); +} diff --git a/vdev/src/commands/build/licenses.rs b/vdev/src/commands/build/licenses.rs new file mode 100644 index 0000000..926abc0 --- /dev/null +++ b/vdev/src/commands/build/licenses.rs @@ -0,0 +1,14 @@ +use anyhow::Result; + +use crate::app; + +/// Rebuild the 3rd-party license file. +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec("dd-rust-license-tool", ["write"], true) + } +} diff --git a/vdev/src/commands/build/mod.rs b/vdev/src/commands/build/mod.rs new file mode 100644 index 0000000..7ed87a9 --- /dev/null +++ b/vdev/src/commands/build/mod.rs @@ -0,0 +1,23 @@ +crate::cli_subcommands! { + "Build, generate or regenerate components..." + component_docs, + mod licenses, + manifests, + mod publish_metadata, + release_cue, + mod vector, + mod vrl_wasm, +} + +crate::script_wrapper! { + component_docs = "Build component documentation" + => "generate-component-docs.rb" +} +crate::script_wrapper! { + manifests = "Build Kubernetes manifests from latest Helm chart" + => "generate-manifests.sh" +} +crate::script_wrapper! { + release_cue = "Build the release documentation files" + => "generate-release-cue.rb" +} diff --git a/vdev/src/commands/build/publish_metadata.rs b/vdev/src/commands/build/publish_metadata.rs new file mode 100644 index 0000000..41d1bce --- /dev/null +++ b/vdev/src/commands/build/publish_metadata.rs @@ -0,0 +1,46 @@ +use anyhow::Result; +use chrono::prelude::*; + +use crate::{git, util}; +use std::env; +use std::fs::OpenOptions; +use std::io::{self, Write}; + +/// Setting necessary metadata for our publish workflow in CI. +/// +/// Responsible for setting necessary metadata for our publish workflow in CI. Computes the Vector +/// version (from Cargo.toml), the release channel (nightly vs release), and more. All of this +/// information is emitted in a way that sets native outputs on the GitHub Actions workflow step +/// running the script, which can be passed on to subsequent jobs/steps. +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + // Generate the Vector version and build description. + let version = util::get_version()?; + + let git_sha = git::get_git_sha()?; + let current_date = Local::now().naive_local().to_string(); + let build_desc = format!("{git_sha} {current_date}"); + + // Figure out what our release channel is. + let channel = util::get_channel(); + + let mut output_file: Box = match env::var("GITHUB_OUTPUT") { + Ok(file_name) if !file_name.is_empty() => { + let file = OpenOptions::new() + .append(true) + .create(true) + .open(file_name)?; + Box::new(file) + } + _ => Box::new(io::stdout()), + }; + writeln!(output_file, "vector_version={version}")?; + writeln!(output_file, "vector_build_desc={build_desc}")?; + writeln!(output_file, "vector_release_channel={channel}")?; + Ok(()) + } +} diff --git a/vdev/src/commands/build/vector.rs b/vdev/src/commands/build/vector.rs new file mode 100644 index 0000000..1003573 --- /dev/null +++ b/vdev/src/commands/build/vector.rs @@ -0,0 +1,44 @@ +use std::process::Command; + +use anyhow::Result; +use clap::Args; + +use crate::{app::CommandExt as _, platform}; + +/// Build the `vector` executable. +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The build target e.g. x86_64-unknown-linux-musl + target: Option, + + /// Build with optimizations + #[arg(short, long)] + release: bool, + + /// The feature to activate (multiple allowed) + #[arg(short = 'F', long)] + feature: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let mut command = Command::new("cargo"); + command.in_repo(); + command.arg("build"); + + if self.release { + command.arg("--release"); + } + + command.features(&self.feature); + + let target = self.target.unwrap_or_else(platform::default_target); + command.args(["--target", &target]); + + waiting!("Building Vector"); + command.check_run()?; + + Ok(()) + } +} diff --git a/vdev/src/commands/build/vrl_wasm.rs b/vdev/src/commands/build/vrl_wasm.rs new file mode 100644 index 0000000..92975b7 --- /dev/null +++ b/vdev/src/commands/build/vrl_wasm.rs @@ -0,0 +1,24 @@ +use std::path::Path; +use anyhow::Result; +use clap::Args; + +use crate::app; + +/// Compiles VRL crates to wasm32-unknown-unknown +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let vrl_path = Path::new(app::path()).join("lib").join("vrl"); + let args = &["build", "--release", "--target", "wasm32-unknown-unknown"]; + + for crate_name in ["compiler", "core", "diagnostic", "parser"] { + println!("Compiling lib/vrl/{crate_name} to wasm32-unknown-unknown"); + std::env::set_current_dir(vrl_path.join(crate_name))?; + app::exec("cargo", *args, false)?; + } + Ok(()) + } +} diff --git a/vdev/src/commands/check/component_docs.rs b/vdev/src/commands/check/component_docs.rs new file mode 100644 index 0000000..fe40819 --- /dev/null +++ b/vdev/src/commands/check/component_docs.rs @@ -0,0 +1,29 @@ +use crate::git; +use anyhow::{Ok, Result}; + +/// Check that component documentation is up-to-date +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let files: Vec = git::get_modified_files()?; + let dirty_component_files: Vec = files + .into_iter() + .filter(|file| file.starts_with("website/cue/reference/components")) + .collect(); + + // If it is not empty, there are out-of-sync component Cue files in the current branch. + if !dirty_component_files.is_empty() { + println!("Found out-of-sync component Cue files in this branch:"); + for file in dirty_component_files { + println!(" - {file}"); + } + println!("Run `make generate-component-docs` locally to update your branch and commit/push the changes."); + std::process::exit(1); + } + + Ok(()) + } +} diff --git a/vdev/src/commands/check/component_features.rs b/vdev/src/commands/check/component_features.rs new file mode 100644 index 0000000..10a39d4 --- /dev/null +++ b/vdev/src/commands/check/component_features.rs @@ -0,0 +1,75 @@ +use std::env; + +use anyhow::Result; + +use crate::{app, util::CargoToml}; + +const CARGO: &str = "cargo"; +const BASE_ARGS: [&str; 5] = [ + "check", + "--tests", + "--bin", + "vector", + "--no-default-features", +]; +const PARALLEL_ARGS: [&str; 7] = [ + "--group", + "--verbose", + "--retries", + "2", + "scripts/check-one-feature", + "{}", + ":::", +]; + +/// Check that all component features are set up properly +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + #[allow(clippy::dbg_macro)] + pub fn exec(self) -> Result<()> { + app::set_repo_dir()?; + + let features = extract_features()?; + + // Prime the pump to build most of the artifacts + app::exec(CARGO, BASE_ARGS, true)?; + app::exec( + CARGO, + BASE_ARGS.into_iter().chain(["--features", "default"]), + true, + )?; + app::exec( + CARGO, + BASE_ARGS + .into_iter() + .chain(["--features", "all-integration-tests"]), + true, + )?; + + // The feature builds already run in parallel below, so don't overload the parallelism + env::set_var("CARGO_BUILD_JOBS", "1"); + + app::exec( + "parallel", + PARALLEL_ARGS + .into_iter() + .chain(features.iter().map(String::as_str)), + true, + ) + } +} + +fn extract_features() -> Result> { + Ok(CargoToml::load()? + .features + .into_keys() + .filter(|feature| { + !feature.contains("-utils") + && feature != "default" + && feature != "all-integration-tests" + }) + .collect()) +} diff --git a/vdev/src/commands/check/deny.rs b/vdev/src/commands/check/deny.rs new file mode 100644 index 0000000..11d04c6 --- /dev/null +++ b/vdev/src/commands/check/deny.rs @@ -0,0 +1,25 @@ +use anyhow::Result; + +use crate::app; + +/// Check for advisories, licenses, and sources for crate dependencies +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec( + "cargo", + [ + "deny", + "--log-level", + "error", + "--all-features", + "check", + "all", + ], + true, + ) + } +} diff --git a/vdev/src/commands/check/examples.rs b/vdev/src/commands/check/examples.rs new file mode 100644 index 0000000..bd29eb4 --- /dev/null +++ b/vdev/src/commands/check/examples.rs @@ -0,0 +1,48 @@ +use std::fs; + +use anyhow::{bail, Context, Result}; + +use crate::app; + +/// Check that the config/example files are valid +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +const EXAMPLES: &str = "config/examples"; + +impl Cli { + pub fn exec(self) -> Result<()> { + app::set_repo_dir()?; + + for entry in fs::read_dir(EXAMPLES) + .with_context(|| format!("Could not read directory {EXAMPLES:?}"))? + { + let entry = entry.with_context(|| format!("Could not read entry from {EXAMPLES:?}"))?; + let filename = entry.path(); + let Some(filename) = filename.as_os_str().to_str() else { + bail!("Invalid filename {filename:?}"); + }; + + let mut command = vec![ + "run", + "--", + "validate", + "--deny-warnings", + "--no-environment", + ]; + if entry + .metadata() + .with_context(|| format!("Could not get metadata of {filename:?}"))? + .is_dir() + { + command.push("--config-dir"); + } + command.push(filename); + + app::exec("cargo", command, true)?; + } + + Ok(()) + } +} diff --git a/vdev/src/commands/check/fmt.rs b/vdev/src/commands/check/fmt.rs new file mode 100644 index 0000000..f6de66c --- /dev/null +++ b/vdev/src/commands/check/fmt.rs @@ -0,0 +1,15 @@ +use anyhow::Result; + +use crate::app; + +/// Check that all files are formatted properly +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec::<&str>("scripts/check-style.sh", [], true)?; + app::exec("cargo", ["fmt", "--", "--check"], true) + } +} diff --git a/vdev/src/commands/check/licenses.rs b/vdev/src/commands/check/licenses.rs new file mode 100644 index 0000000..fd68a4c --- /dev/null +++ b/vdev/src/commands/check/licenses.rs @@ -0,0 +1,17 @@ +use anyhow::Result; + +use crate::app; + +/// Check that the 3rd-party license file is up to date +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec("dd-rust-license-tool", ["check"], true).map_err(|err| { + info!("Run `cargo vdev build licenses` to regenerate the file"); + err + }) + } +} diff --git a/vdev/src/commands/check/markdown.rs b/vdev/src/commands/check/markdown.rs new file mode 100644 index 0000000..1b5da64 --- /dev/null +++ b/vdev/src/commands/check/markdown.rs @@ -0,0 +1,28 @@ +use anyhow::Result; + +use crate::app; + +/// Check that markdown is styled properly +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec( + "markdownlint", + [ + "--config", + "scripts/.markdownlintrc", + "--ignore", + "scripts/node_modules", + "--ignore", + "website/node_modules", + "--ignore", + "target", + ".", + ], + true, + ) + } +} diff --git a/vdev/src/commands/check/mod.rs b/vdev/src/commands/check/mod.rs new file mode 100644 index 0000000..78cb626 --- /dev/null +++ b/vdev/src/commands/check/mod.rs @@ -0,0 +1,32 @@ +crate::cli_subcommands! { + "Check parts of the Vector code base..." + mod component_docs, + mod component_features, + mod deny, + docs, + events, + mod examples, + mod fmt, + mod licenses, + mod markdown, + mod rust, + mod scripts, + version, +} + +// These should eventually be migrated to Rust code + +crate::script_wrapper! { + docs = "Check that all /docs files are valid" + => "check-docs.sh" +} + +crate::script_wrapper! { + events = "Check that events satisfy patterns set in " + => "check-events" +} + +crate::script_wrapper! { + version = "Check that Vector's version is correct, accounting for recent changes" + => "check-version.rb" +} diff --git a/vdev/src/commands/check/rust.rs b/vdev/src/commands/check/rust.rs new file mode 100644 index 0000000..b741bf5 --- /dev/null +++ b/vdev/src/commands/check/rust.rs @@ -0,0 +1,44 @@ +use anyhow::Result; + +use crate::{app, util::ChainArgs as _}; + +/// Check the Rust code for errors +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli { + #[arg(long)] + clippy: bool, + + #[arg(value_name = "FEATURE")] + features: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let features = self.features.join(","); + let features = if self.features.is_empty() { + "default,all-integration-tests" + } else { + &features + }; + let tool = if self.clippy { "clippy" } else { "check" }; + let args = if self.clippy { + vec!["--", "-D", "warnings"] + } else { + Vec::default() + }; + app::exec( + "cargo", + [ + tool, + "--workspace", + "--all-targets", + "--no-default-features", + "--features", + features, + ] + .chain_args(args), + true, + ) + } +} diff --git a/vdev/src/commands/check/scripts.rs b/vdev/src/commands/check/scripts.rs new file mode 100644 index 0000000..a2c3778 --- /dev/null +++ b/vdev/src/commands/check/scripts.rs @@ -0,0 +1,25 @@ +use anyhow::Result; + +use crate::{app, git}; + +/// Check that shell scripts do not have common mistakes +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::set_repo_dir()?; + + #[allow(clippy::case_sensitive_file_extension_comparisons)] + app::exec( + "shellcheck", + ["--external-sources", "--shell", "bash"].into_iter().chain( + git::list_files()? + .iter() + .filter_map(|name| name.ends_with(".sh").then_some(name.as_str())), + ), + true, + ) + } +} diff --git a/vdev/src/commands/complete.rs b/vdev/src/commands/complete.rs new file mode 100644 index 0000000..e02834c --- /dev/null +++ b/vdev/src/commands/complete.rs @@ -0,0 +1,24 @@ +use anyhow::Result; +use clap::{Args, CommandFactory}; +use clap_complete::{generate, Shell}; +use std::io; + +use super::Cli as RootCli; + +/// Display the completion file for a given shell +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + #[arg(value_enum)] + shell: Shell, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let mut cmd = RootCli::command(); + let bin_name = cmd.get_name().to_string(); + generate(self.shell, &mut cmd, bin_name, &mut io::stdout()); + + Ok(()) + } +} diff --git a/vdev/src/commands/compose_tests/ci_paths.rs b/vdev/src/commands/compose_tests/ci_paths.rs new file mode 100644 index 0000000..e18b9ce --- /dev/null +++ b/vdev/src/commands/compose_tests/ci_paths.rs @@ -0,0 +1,20 @@ +use anyhow::Result; + +use crate::testing::config::ComposeTestConfig; + +pub(crate) fn exec(path: &str) -> Result<()> { + // placeholder for changes that should run all integration tests + println!("all-tests: []"); + + // paths for each integration are defined in their respective config files. + for (test_name, config) in ComposeTestConfig::collect_all(path)? { + if let Some(paths) = config.paths { + println!("{test_name}:"); + for path in paths { + println!("- {path:?}"); + } + } + } + + Ok(()) +} diff --git a/vdev/src/commands/compose_tests/mod.rs b/vdev/src/commands/compose_tests/mod.rs new file mode 100644 index 0000000..27a033f --- /dev/null +++ b/vdev/src/commands/compose_tests/mod.rs @@ -0,0 +1,5 @@ +pub(crate) mod ci_paths; +pub(crate) mod show; +pub(crate) mod start; +pub(crate) mod stop; +pub(crate) mod test; diff --git a/vdev/src/commands/compose_tests/show.rs b/vdev/src/commands/compose_tests/show.rs new file mode 100644 index 0000000..672026e --- /dev/null +++ b/vdev/src/commands/compose_tests/show.rs @@ -0,0 +1,93 @@ +use anyhow::Result; + +use crate::testing::{config::ComposeTestConfig, config::Environment, state}; + +pub fn exec(integration: &Option, path: &str) -> Result<()> { + match integration { + None => { + let entries = ComposeTestConfig::collect_all(path)?; + let width = entries + .keys() + .fold(16, |width, entry| width.max(entry.len())); + println!("{:width$} Environment Name(s)", "Integration Name"); + println!("{:width$} -------------------", "----------------"); + for (integration, config) in entries { + let envs_dir = state::EnvsDir::new(&integration); + let active_env = envs_dir.active()?; + let environments = config + .environments() + .keys() + .map(|environment| format(&active_env, environment)) + .collect::>() + .join(" "); + println!("{integration:width$} {environments}"); + } + } + Some(integration) => { + let (_test_dir, config) = ComposeTestConfig::load(path, integration)?; + let envs_dir = state::EnvsDir::new(integration); + let active_env = envs_dir.active()?; + + if let Some(args) = &config.args { + println!("Test args: {}", args.join(" ")); + } else { + println!("Test args: N/A"); + } + + if config.features.is_empty() { + println!("Features: N/A"); + } else { + println!("Features: {}", config.features.join(",")); + } + + println!( + "Test filter: {}", + config.test_filter.as_deref().unwrap_or("N/A") + ); + + println!("Environment:"); + print_env(" ", &config.env); + println!("Runner:"); + println!(" Environment:"); + print_env(" ", &config.runner.env); + println!(" Volumes:"); + if config.runner.volumes.is_empty() { + println!(" N/A"); + } else { + for (target, mount) in &config.runner.volumes { + println!(" {target} => {mount}"); + } + } + println!( + " Needs docker socket: {}", + config.runner.needs_docker_socket + ); + + println!("Environments:"); + for environment in config.environments().keys() { + println!(" {}", format(&active_env, environment)); + } + } + } + Ok(()) +} + +fn format(active_env: &Option, environment: &str) -> String { + match active_env { + Some(active) if active == environment => format!("{environment} (active)"), + _ => environment.into(), + } +} + +fn print_env(prefix: &str, environment: &Environment) { + if environment.is_empty() { + println!("{prefix}N/A"); + } else { + for (key, value) in environment { + match value { + Some(value) => println!("{prefix}{key}={value:?}"), + None => println!("{prefix}{key} (passthrough)"), + } + } + } +} diff --git a/vdev/src/commands/compose_tests/start.rs b/vdev/src/commands/compose_tests/start.rs new file mode 100644 index 0000000..3ccb7cd --- /dev/null +++ b/vdev/src/commands/compose_tests/start.rs @@ -0,0 +1,20 @@ +use anyhow::Result; + +use crate::testing::{config::ComposeTestConfig, integration::ComposeTestT}; + +pub(crate) fn exec( + integration: &str, + environment: &Option, + build_all: bool, +) -> Result<()> { + let environment = if let Some(environment) = environment { + environment.clone() + } else { + let (_test_dir, config) = ComposeTestConfig::load(T::DIRECTORY, integration)?; + let envs = config.environments(); + let env = envs.keys().next().expect("Integration has no environments"); + env.clone() + }; + + T::start(&T::generate(integration, environment, build_all, 0)?) +} diff --git a/vdev/src/commands/compose_tests/stop.rs b/vdev/src/commands/compose_tests/stop.rs new file mode 100644 index 0000000..7a780fa --- /dev/null +++ b/vdev/src/commands/compose_tests/stop.rs @@ -0,0 +1,12 @@ +use anyhow::Result; + +use crate::testing::{integration::ComposeTestT, state::EnvsDir}; + +pub(crate) fn exec(test_name: &str, all_features: bool) -> Result<()> { + if let Some(active) = EnvsDir::new(test_name).active()? { + T::stop(&T::generate(test_name, active, all_features, 0)?) + } else { + println!("No environment for {test_name} is active."); + Ok(()) + } +} diff --git a/vdev/src/commands/compose_tests/test.rs b/vdev/src/commands/compose_tests/test.rs new file mode 100644 index 0000000..25c6175 --- /dev/null +++ b/vdev/src/commands/compose_tests/test.rs @@ -0,0 +1,39 @@ +use anyhow::{bail, Result}; + +use crate::testing::{config::ComposeTestConfig, integration::ComposeTestT, state::EnvsDir}; + +pub fn exec( + integration: &str, + environment: &Option, + build_all: bool, + retries: u8, + args: &[String], +) -> Result<()> { + let (_test_dir, config) = ComposeTestConfig::load(T::DIRECTORY, integration)?; + let envs = config.environments(); + + let active = EnvsDir::new(integration).active()?; + + match (&environment, &active) { + (Some(environment), Some(active)) if environment != active => { + bail!("Requested environment {environment:?} does not match active one {active:?}") + } + (Some(environment), _) => T::test( + &T::generate(integration, environment, build_all, retries)?, + args.to_owned(), + ), + (None, Some(active)) => T::test( + &T::generate(integration, active, build_all, retries)?, + args.to_owned(), + ), + (None, None) => { + for env_name in envs.keys() { + T::test( + &T::generate(integration, env_name, build_all, retries)?, + args.to_owned(), + )?; + } + Ok(()) + } + } +} diff --git a/vdev/src/commands/config/find.rs b/vdev/src/commands/config/find.rs new file mode 100644 index 0000000..60d1e2b --- /dev/null +++ b/vdev/src/commands/config/find.rs @@ -0,0 +1,17 @@ +use anyhow::Result; +use clap::Args; + +use crate::config; + +/// Locate the config file +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + println!("{}", config::path()?.display()); + + Ok(()) + } +} diff --git a/vdev/src/commands/config/mod.rs b/vdev/src/commands/config/mod.rs new file mode 100644 index 0000000..254e337 --- /dev/null +++ b/vdev/src/commands/config/mod.rs @@ -0,0 +1,5 @@ +crate::cli_subcommands! { + "Manage the vdev config file..." + mod find, + mod set, +} diff --git a/vdev/src/commands/config/set/mod.rs b/vdev/src/commands/config/set/mod.rs new file mode 100644 index 0000000..eaf394d --- /dev/null +++ b/vdev/src/commands/config/set/mod.rs @@ -0,0 +1,4 @@ +crate::cli_subcommands! { + "Modify the config file..." + mod repo, +} diff --git a/vdev/src/commands/config/set/org.rs b/vdev/src/commands/config/set/org.rs new file mode 100644 index 0000000..fc6e37f --- /dev/null +++ b/vdev/src/commands/config/set/org.rs @@ -0,0 +1,21 @@ +use anyhow::Result; +use clap::Args; + +use crate::{app, config}; + +/// Set the target Datadog org +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + name: String, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let mut config = app::config().clone(); + config.org = self.name.to_string(); + config::save(config)?; + + Ok(()) + } +} diff --git a/vdev/src/commands/config/set/repo.rs b/vdev/src/commands/config/set/repo.rs new file mode 100644 index 0000000..521ddc8 --- /dev/null +++ b/vdev/src/commands/config/set/repo.rs @@ -0,0 +1,23 @@ +use anyhow::Result; +use clap::Args; + +use crate::{app, config, platform}; + +/// Set the path to the Vector repository +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + path: String, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let path = platform::canonicalize_path(self.path); + + let mut config = app::config().clone(); + config.repo = path; + config::save(config)?; + + Ok(()) + } +} diff --git a/vdev/src/commands/crate_versions.rs b/vdev/src/commands/crate_versions.rs new file mode 100644 index 0000000..f124429 --- /dev/null +++ b/vdev/src/commands/crate_versions.rs @@ -0,0 +1,61 @@ +use std::{collections::HashMap, collections::HashSet, process::Command}; + +use anyhow::Result; +use clap::Args; +use itertools::Itertools as _; +use regex::Regex; + +use crate::{app::CommandExt as _, util}; + +/// Show information about crates versions pulled in by all dependencies +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// Show all versions, not just those that are duplicated + #[arg(long)] + all: bool, + + /// The feature to active (multiple allowed). If none are specified, the default is used. + #[arg(short = 'F', long)] + feature: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let re_crate = Regex::new(r" (\S+) v([0-9.]+)").unwrap(); + let mut versions: HashMap> = HashMap::default(); + + for line in Command::new("cargo") + .arg("tree") + .features(&self.feature) + .check_output()? + .lines() + { + if let Some(captures) = re_crate.captures(line) { + let package = &captures[1]; + let version = &captures[2]; + versions + .entry(package.into()) + .or_default() + .insert(version.into()); + } + } + + if !self.all { + versions.retain(|_, versions| versions.len() > 1); + } + + let width = versions.keys().map(String::len).max().unwrap_or(0).max(7); + if *util::IS_A_TTY { + println!("{:width$} Version(s)", "Package"); + println!("{:width$} ----------", "-------"); + } + + for (package, versions) in versions { + let versions = versions.iter().join(" "); + println!("{package:width$} {versions}"); + } + + Ok(()) + } +} diff --git a/vdev/src/commands/e2e/ci_paths.rs b/vdev/src/commands/e2e/ci_paths.rs new file mode 100644 index 0000000..d3679a3 --- /dev/null +++ b/vdev/src/commands/e2e/ci_paths.rs @@ -0,0 +1,16 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::config::E2E_TESTS_DIR; + +/// Output paths in the repository that are associated with an integration. +/// If any changes are made to these paths, that integration should be tested. +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(&self) -> Result<()> { + crate::commands::compose_tests::ci_paths::exec(E2E_TESTS_DIR) + } +} diff --git a/vdev/src/commands/e2e/mod.rs b/vdev/src/commands/e2e/mod.rs new file mode 100644 index 0000000..be9a6b7 --- /dev/null +++ b/vdev/src/commands/e2e/mod.rs @@ -0,0 +1,13 @@ +crate::cli_subcommands! { + r#"Manage end-to-end test environments... + +These test setups are organized into a set of integrations, located in subdirectories +`scripts/e2e`. For each integration, there is a matrix of environments, described in the +`matrix` setting in the `test.yaml` file contained therein."# + + mod show, + mod start, + mod stop, + mod test, + mod ci_paths, +} diff --git a/vdev/src/commands/e2e/show.rs b/vdev/src/commands/e2e/show.rs new file mode 100644 index 0000000..cc1645b --- /dev/null +++ b/vdev/src/commands/e2e/show.rs @@ -0,0 +1,18 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::config::E2E_TESTS_DIR; + +/// Show information about e2e-tests +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The desired e2e test name + test: Option, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::show::exec(&self.test, E2E_TESTS_DIR) + } +} diff --git a/vdev/src/commands/e2e/start.rs b/vdev/src/commands/e2e/start.rs new file mode 100644 index 0000000..63e11ee --- /dev/null +++ b/vdev/src/commands/e2e/start.rs @@ -0,0 +1,29 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::E2ETest; + +/// Start an environment +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The e2e test name + test: String, + + /// Whether to compile the test runner with all integration test features + #[arg(short = 'a', long)] + build_all: bool, + + /// The desired environment name to start. If omitted, the first environment name is used. + environment: Option, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::start::exec::( + &self.test, + &self.environment, + self.build_all, + ) + } +} diff --git a/vdev/src/commands/e2e/stop.rs b/vdev/src/commands/e2e/stop.rs new file mode 100644 index 0000000..2a11fd5 --- /dev/null +++ b/vdev/src/commands/e2e/stop.rs @@ -0,0 +1,22 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::E2ETest; + +/// Stop an e2e-test environment +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The e2e test name to stop + test: String, + + /// If true, remove the runner container compiled with all integration test features + #[arg(short = 'a', long)] + all_features: bool, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::stop::exec::(&self.test, self.all_features) + } +} diff --git a/vdev/src/commands/e2e/test.rs b/vdev/src/commands/e2e/test.rs new file mode 100644 index 0000000..45d70a3 --- /dev/null +++ b/vdev/src/commands/e2e/test.rs @@ -0,0 +1,45 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::E2ETest; + +/// Execute end-to-end tests +/// +/// If an environment is named, it is used to run the test. If the environment was not previously started, +/// it is started before the test is run and stopped afterwards. +/// +/// If no environment is named, but one has been started already, that environment is used for the test. +/// +/// Otherwise, all environments are started, the test run, and then stopped, one by one. +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The desired e2e test + e2e_test: String, + + /// The desired environment (optional) + environment: Option, + + /// Whether to compile the test runner with all integration test features + #[arg(short = 'a', long)] + build_all: bool, + + /// Number of retries to allow on each integration test case. + #[arg(short = 'r', long)] + retries: Option, + + /// Extra test command arguments + args: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::test::exec::( + &self.e2e_test, + &self.environment, + self.build_all, + self.retries.unwrap_or_default(), + &self.args, + ) + } +} diff --git a/vdev/src/commands/exec.rs b/vdev/src/commands/exec.rs new file mode 100644 index 0000000..f7e6a11 --- /dev/null +++ b/vdev/src/commands/exec.rs @@ -0,0 +1,24 @@ +use std::process::Command; + +use anyhow::Result; +use clap::Args; + +use crate::app::CommandExt as _; + +/// Execute a command within the repository +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + #[arg(required = true, trailing_var_arg = true, allow_hyphen_values = true)] + args: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let status = Command::new(&self.args[0]) + .in_repo() + .args(&self.args[1..]) + .run()?; + std::process::exit(status.code().unwrap_or(1)); + } +} diff --git a/vdev/src/commands/features.rs b/vdev/src/commands/features.rs new file mode 100644 index 0000000..5445e5d --- /dev/null +++ b/vdev/src/commands/features.rs @@ -0,0 +1,22 @@ +use std::path::PathBuf; + +use anyhow::Result; +use clap::Args; + +use crate::features; + +/// Extract the set of features required to run a given config +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + config: PathBuf, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + for feature in features::load_and_extract(&self.config)? { + println!("{feature}"); + } + Ok(()) + } +} diff --git a/vdev/src/commands/fmt.rs b/vdev/src/commands/fmt.rs new file mode 100644 index 0000000..7118e12 --- /dev/null +++ b/vdev/src/commands/fmt.rs @@ -0,0 +1,15 @@ +use anyhow::Result; + +use crate::app; + +/// Apply format changes across the repository +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + app::exec("scripts/check-style.sh", ["--fix"], true)?; + app::exec("cargo", ["fmt"], true) + } +} diff --git a/vdev/src/commands/info.rs b/vdev/src/commands/info.rs new file mode 100644 index 0000000..c0815cb --- /dev/null +++ b/vdev/src/commands/info.rs @@ -0,0 +1,36 @@ +use anyhow::Result; +use clap::Args; + +use crate::{app, config, platform, testing::runner}; + +/// Show `vdev` command configuration +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + println!("Container tool: {:?}", *runner::CONTAINER_TOOL); + println!("Data path: {:?}", platform::data_dir()); + println!("Repository: {:?}", app::path()); + println!("Shell: {:?}", *app::SHELL); + + println!("\nConfig:"); + match config::path() { + Ok(path) => { + println!(" Path: {path:?}"); + match config::load() { + Ok(config) => { + println!(" Repository: {:?}", config.repo); + } + Err(error) => println!(" Could not load: {error}"), + } + } + Err(error) => println!(" Path: Not found: {error}"), + } + + println!("\nPlatform:"); + println!(" Default target: {}", platform::default_target()); + Ok(()) + } +} diff --git a/vdev/src/commands/integration/ci_paths.rs b/vdev/src/commands/integration/ci_paths.rs new file mode 100644 index 0000000..a91034c --- /dev/null +++ b/vdev/src/commands/integration/ci_paths.rs @@ -0,0 +1,16 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::config::INTEGRATION_TESTS_DIR; + +/// Output paths in the repository that are associated with an integration. +/// If any changes are made to these paths, that integration should be tested. +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(&self) -> Result<()> { + crate::commands::compose_tests::ci_paths::exec(INTEGRATION_TESTS_DIR) + } +} diff --git a/vdev/src/commands/integration/mod.rs b/vdev/src/commands/integration/mod.rs new file mode 100644 index 0000000..0591d7f --- /dev/null +++ b/vdev/src/commands/integration/mod.rs @@ -0,0 +1,13 @@ +crate::cli_subcommands! { + r#"Manage integration test environments... + +These test setups are organized into a set of integrations, located in subdirectories +`scripts/integration`. For each integration, there is a matrix of environments, described in the +`matrix` setting in the `test.yaml` file contained therein."# + + mod show, + mod start, + mod stop, + mod test, + mod ci_paths, +} diff --git a/vdev/src/commands/integration/show.rs b/vdev/src/commands/integration/show.rs new file mode 100644 index 0000000..410219e --- /dev/null +++ b/vdev/src/commands/integration/show.rs @@ -0,0 +1,18 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::config::INTEGRATION_TESTS_DIR; + +/// Show information about integrations +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The desired integration + integration: Option, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::show::exec(&self.integration, INTEGRATION_TESTS_DIR) + } +} diff --git a/vdev/src/commands/integration/start.rs b/vdev/src/commands/integration/start.rs new file mode 100644 index 0000000..51a247d --- /dev/null +++ b/vdev/src/commands/integration/start.rs @@ -0,0 +1,29 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::IntegrationTest; + +/// Start an environment +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The integration name + integration: String, + + /// Whether to compile the test runner with all integration test features + #[arg(short = 'a', long)] + build_all: bool, + + /// The desired environment name to start. If omitted, the first environment name is used. + environment: Option, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::start::exec::( + &self.integration, + &self.environment, + self.build_all, + ) + } +} diff --git a/vdev/src/commands/integration/stop.rs b/vdev/src/commands/integration/stop.rs new file mode 100644 index 0000000..0bacde2 --- /dev/null +++ b/vdev/src/commands/integration/stop.rs @@ -0,0 +1,25 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::IntegrationTest; + +/// Stop an integration test environment +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The integration name to stop + integration: String, + + /// If true, remove the runner container compiled with all integration test features + #[arg(short = 'a', long)] + all_features: bool, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::stop::exec::( + &self.integration, + self.all_features, + ) + } +} diff --git a/vdev/src/commands/integration/test.rs b/vdev/src/commands/integration/test.rs new file mode 100644 index 0000000..e410155 --- /dev/null +++ b/vdev/src/commands/integration/test.rs @@ -0,0 +1,45 @@ +use anyhow::Result; +use clap::Args; + +use crate::testing::integration::IntegrationTest; + +/// Execute integration tests +/// +/// If an environment is named, it is used to run the test. If the environment was not previously started, +/// it is started before the test is run and stopped afterwards. +/// +/// If no environment is named, but one has been started already, that environment is used for the test. +/// +/// Otherwise, all environments are started, the test run, and then stopped, one by one. +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// The desired integration + integration: String, + + /// The desired environment (optional) + environment: Option, + + /// Whether to compile the test runner with all integration test features + #[arg(short = 'a', long)] + build_all: bool, + + /// Number of retries to allow on each integration test case. + #[arg(short = 'r', long)] + retries: Option, + + /// Extra test command arguments + args: Vec, +} + +impl Cli { + pub fn exec(self) -> Result<()> { + crate::commands::compose_tests::test::exec::( + &self.integration, + &self.environment, + self.build_all, + self.retries.unwrap_or_default(), + &self.args, + ) + } +} diff --git a/vdev/src/commands/meta/install_git_hooks.rs b/vdev/src/commands/meta/install_git_hooks.rs new file mode 100644 index 0000000..6ad9dde --- /dev/null +++ b/vdev/src/commands/meta/install_git_hooks.rs @@ -0,0 +1,68 @@ +use anyhow::{Ok, Result}; +use std::fs::File; +use std::io::Write; + +#[cfg(unix)] +use std::os::unix::fs::PermissionsExt; + +use crate::app; +use std::path::Path; + +const SIGNOFF_HOOK: &str = r#"#!/bin/bash +set -euo pipefail + +# Automatically sign off your commits. +# +# Installation: +# +# cp scripts/signoff-git-hook.sh .git/hooks/commit-msg +# +# It's also possible to symlink the script, however that's a security hazard and +# is not recommended. + +NAME="$(git config user.name)" +EMAIL="$(git config user.email)" + +if [ -z "$NAME" ]; then + echo "empty git config user.name" + exit 1 +fi + +if [ -z "$EMAIL" ]; then + echo "empty git config user.email" + exit 1 +fi + +git interpret-trailers --if-exists doNothing --trailer \ + "Signed-off-by: $NAME <$EMAIL>" \ + --in-place "$1" + +"#; + +/// Install a Git commit message hook that verifies +/// that all commits have been signed off. +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let hook_dir = Path::new(app::path()).join(".git").join("hooks"); + + // Create a new directory named hooks in the .git directory if it + // doesn't already exist. + // Use create_dir_all to avoid Error: File exists (os error 17)" + std::fs::create_dir_all(&hook_dir)?; + + let file_path = hook_dir.join("commit-msg"); + let mut file = File::create(&file_path)?; + file.write_all(SIGNOFF_HOOK.as_bytes())?; + #[cfg(unix)] + { + file.metadata()?.permissions().set_mode(0o755); + } + println!("Created signoff script in {}", file_path.display()); + + Ok(()) + } +} diff --git a/vdev/src/commands/meta/mod.rs b/vdev/src/commands/meta/mod.rs new file mode 100644 index 0000000..f941a1d --- /dev/null +++ b/vdev/src/commands/meta/mod.rs @@ -0,0 +1,5 @@ +crate::cli_subcommands! { + "Collection of meta-utilities..." + mod starship, + mod install_git_hooks, +} diff --git a/vdev/src/commands/meta/starship.rs b/vdev/src/commands/meta/starship.rs new file mode 100644 index 0000000..e0d3e12 --- /dev/null +++ b/vdev/src/commands/meta/starship.rs @@ -0,0 +1,23 @@ +use anyhow::Result; +use clap::Args; + +use crate::util::CargoToml; + +/// Custom Starship prompt plugin +#[derive(Args, Debug)] +#[command(hide = true)] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let mut contexts = vec![]; + + if let Ok(cargo_toml) = CargoToml::load() { + contexts.push(format!("version: {}", cargo_toml.package.version)); + } + + println!("vector{{ {} }}", contexts.join(", ")); + + Ok(()) + } +} diff --git a/vdev/src/commands/mod.rs b/vdev/src/commands/mod.rs new file mode 100644 index 0000000..9c5f0fb --- /dev/null +++ b/vdev/src/commands/mod.rs @@ -0,0 +1,117 @@ +use clap::Parser; +use clap_verbosity_flag::{InfoLevel, Verbosity}; + +mod compose_tests; + +/// This macro simplifies the generation of CLI subcommand invocation structures by combining the +/// creation of the command enum and implementation of the dispatch function into one simple list. +#[macro_export] +macro_rules! cli_commands { + // Peel off the list of module identifiers one-by-one + ( :: $( $list:ident, )* :: mod $mod:ident, $( $rest:tt )* ) => { + mod $mod; + $crate::cli_commands! { :: $( $list, )* $mod, :: $( $rest )* } + }; + ( :: $( $list:ident, )* :: $mod:ident, $( $rest:tt )* ) => { + $crate::cli_commands! { :: $( $list, )* $mod, :: $( $rest )* } + }; + // All the identifiers are parsed out, build up the enum and impl blocks + ( :: $( $mod:ident, )* :: ) => { + paste::paste! { + #[derive(clap::Subcommand, Debug)] + enum Commands { + $( [<$mod:camel>]($mod::Cli), )* + } + + impl Cli { + pub fn exec(self) -> anyhow::Result<()> { + match self.command { + $( Commands::[<$mod:camel>](cli) => cli.exec(), )* + } + } + } + } + }; + // Start the above patterns + ( $( $rest:tt )+ ) => { $crate::cli_commands! { :: :: $( $rest )+ } }; +} + +#[macro_export] +macro_rules! cli_subcommands { + ( $doc:literal $( $rest:tt )* ) => { + #[derive(clap::Args, Debug)] + #[doc = $doc] + #[command()] + pub(super) struct Cli { + #[command(subcommand)] + command: Commands, + } + + $crate::cli_commands! { $( $rest )* } + } +} + +/// Vector's unified dev tool +#[derive(Parser, Debug)] +#[command( + version, + bin_name = "vdev", + infer_subcommands = true, + disable_help_subcommand = true, + after_help = r#"Environment variables: + $CONTAINER_TOOL Set the tool used to run containers (Defaults to autodetect) + Valid values are either "docker" or "podman". +"# +)] +pub struct Cli { + #[clap(flatten)] + pub verbose: Verbosity, + + #[command(subcommand)] + command: Commands, +} + +cli_commands! { + mod build, + mod check, + mod complete, + mod config, + mod crate_versions, + mod e2e, + mod exec, + mod features, + mod fmt, + mod info, + mod integration, + mod meta, + mod package, + mod release, + mod run, + mod status, + mod test, + mod test_vrl, + mod version, +} + +/// This macro creates a wrapper for an existing script. +#[macro_export] +macro_rules! script_wrapper { + ( $mod:ident = $doc:literal => $script:literal ) => { + paste::paste! { + mod $mod { + #[doc = $doc] + #[derive(clap::Args, Debug)] + #[command()] + pub(super) struct Cli { + args: Vec, + } + + impl Cli { + pub(super) fn exec(self) -> anyhow::Result<()> { + $crate::app::exec(concat!("scripts/", $script), self.args, true) + } + } + } + } + }; +} diff --git a/vdev/src/commands/package.rs b/vdev/src/commands/package.rs new file mode 100644 index 0000000..3bc13ab --- /dev/null +++ b/vdev/src/commands/package.rs @@ -0,0 +1,21 @@ +crate::cli_subcommands! { + "Package Vector in various formats..." + archive, deb, msi, rpm, +} + +crate::script_wrapper! { + archive = "Create a .tar.gz package for the specified $TARGET" + => "package-archive.sh" +} +crate::script_wrapper! { + deb = "Create a .deb package to be distributed in the APT package manager" + => "package-deb.sh" +} +crate::script_wrapper! { + msi = "Create a .msi package for Windows" + => "package-msi.sh" +} +crate::script_wrapper! { + rpm = "Create a .rpm package to be distributed in the YUM package manager" + => "package-rpm.sh" +} diff --git a/vdev/src/commands/release/channel.rs b/vdev/src/commands/release/channel.rs new file mode 100644 index 0000000..5a21e6f --- /dev/null +++ b/vdev/src/commands/release/channel.rs @@ -0,0 +1,20 @@ +use anyhow::Result; + +use crate::util::get_channel; + +/// Provide the release channel (release/nightly/custom). +/// This command is intended for use only within GitHub build workflows. +// This script is used across various release scripts to determine where distribute archives, +// packages, etc. +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let channel = get_channel(); + + println!("{channel}"); + Ok(()) + } +} diff --git a/vdev/src/commands/release/github.rs b/vdev/src/commands/release/github.rs new file mode 100644 index 0000000..c529b80 --- /dev/null +++ b/vdev/src/commands/release/github.rs @@ -0,0 +1,45 @@ +use crate::app::CommandExt as _; +use crate::util; +use anyhow::{anyhow, Ok, Result}; +use glob::glob; +use std::process::Command; + +/// Uploads target/artifacts to GitHub releases +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let artifacts = glob("target/artifacts/*") + .expect("failed to read glob pattern") + .collect::, _>>() + .map_err(|e| anyhow!("failed to read path: {}", e))? + .into_iter() + .map(|p| p.into_os_string().into_string()) + .collect::, _>>() + .map_err(|e| anyhow!("failed to turn path into string: {:?}", e))?; + + let version = util::get_version()?; + let mut command = Command::new("gh"); + command.in_repo(); + command.args( + [ + "release", + "--repo", + "vectordotdev/vector", + "create", + &format!("v{version}"), + "--title", + &format!("v{version}"), + "--notes", + &format!("[View release notes](https://vector.dev/releases/{version})"), + ] + .map(String::from) + .into_iter() + .chain(artifacts), + ); + command.check_run()?; + Ok(()) + } +} diff --git a/vdev/src/commands/release/homebrew.rs b/vdev/src/commands/release/homebrew.rs new file mode 100644 index 0000000..25f4c1b --- /dev/null +++ b/vdev/src/commands/release/homebrew.rs @@ -0,0 +1,91 @@ +use crate::git; +use anyhow::Result; +use hex; +use regex; +use reqwest; +use sha2::Digest; +use std::env; +use std::path::Path; +use tempfile::TempDir; + +/// Releases latest version to the vectordotdev homebrew tap +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + // Create temporary directory for cloning the homebrew-brew repository + let td = TempDir::new()?; + env::set_current_dir(td.path())?; + + let github_token = env::var("GITHUB_TOKEN")?; + + // Clone the homebrew-brew repository + let homebrew_repo = + format!("https://{github_token}:x-oauth-basic@github.com/vectordotdev/homebrew-brew"); + git::clone(&homebrew_repo)?; + env::set_current_dir("homebrew-brew")?; + + // Set git configurations + git::set_config_value("user.name", "vic")?; + git::set_config_value("user.email", "vector@datadoghq.com")?; + + // Get package details for updating Formula/vector.rb + let vector_version = env::var("VECTOR_VERSION")?; + let package_url = format!("https://packages.timber.io/vector/{vector_version}/vector-{vector_version}-x86_64-apple-darwin.tar.gz"); + let package_sha256 = hex::encode(sha2::Sha256::digest( + reqwest::blocking::get(&package_url)?.bytes()?, + )); + + // Update content of Formula/vector.rb + update_content( + "Formula/vector.rb", + &package_url, + &package_sha256, + &vector_version, + )?; + + // Check if there is any change in git index + let has_changes = !git::check_git_repository_clean()?; + if has_changes { + let commit_message = format!("Release Vector {vector_version}"); + git::commit(&commit_message)?; + } + + git::push()?; + + // Remove temporary directory + td.close()?; + Ok(()) + } +} + +/// Open the vector.rb file and update the new content +fn update_content

( + file_path: P, + package_url: &str, + package_sha256: &str, + vector_version: &str, +) -> Result<()> +where + P: AsRef, +{ + let content = std::fs::read_to_string(&file_path)?; + let patterns = [ + (format!(r#"url "{package_url}""#), r#"url ".*""#), + (format!(r#"sha256 "{package_sha256}""#), r#"sha256 ".*""#), + (format!(r#"version "{vector_version}""#), r#"version ".*""#), + ]; + let new_content = substitute(content, &patterns); + std::fs::write(file_path, new_content)?; + Ok(()) +} + +fn substitute(mut content: String, patterns: &[(String, &str)]) -> String { + for (value, pattern) in patterns { + let re = regex::Regex::new(pattern).unwrap(); + content = re.replace_all(&content, value.as_str()).to_string(); + } + content +} diff --git a/vdev/src/commands/release/mod.rs b/vdev/src/commands/release/mod.rs new file mode 100644 index 0000000..ceb9cbc --- /dev/null +++ b/vdev/src/commands/release/mod.rs @@ -0,0 +1,29 @@ +crate::cli_subcommands! { + "Manage the release process..." + generate_cue, + mod channel, + commit, + docker, + mod github, + mod homebrew, + mod prepare, + mod push, + s3, +} + +crate::script_wrapper! { + generate_cue = "Generate the release documentation files" + => "generate-release-cue.rb" +} +crate::script_wrapper! { + commit = "Commits and tags the pending release" + => "release-commit.rb" +} +crate::script_wrapper! { + docker = "Build the Vector docker images and optionally push it to the registry" + => "build-docker.sh" +} +crate::script_wrapper! { + s3 = "Uploads archives and packages to AWS S3" + => "release-s3.sh" +} diff --git a/vdev/src/commands/release/prepare.rs b/vdev/src/commands/release/prepare.rs new file mode 100644 index 0000000..6c6c831 --- /dev/null +++ b/vdev/src/commands/release/prepare.rs @@ -0,0 +1,22 @@ +use std::process::Command; + +use anyhow::Result; + +use crate::app::CommandExt as _; + +/// Update Kubernetes manifests from latest stable release and create a new Cue file for the new +/// release +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + Command::script("generate-manifests.sh") + .in_repo() + .check_run()?; + Command::script("generate-release-cue.rb") + .in_repo() + .check_run() + } +} diff --git a/vdev/src/commands/release/push.rs b/vdev/src/commands/release/push.rs new file mode 100644 index 0000000..66d3b5f --- /dev/null +++ b/vdev/src/commands/release/push.rs @@ -0,0 +1,32 @@ +use anyhow::Result; +use clap::Args; + +use crate::app; +use crate::git; +use itertools::Itertools; + +/// Pushes new versions produced by `make release` to the repository +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + let version = app::version()?; + let version_minor = version.split('.').take(2).join("."); + + let current_branch = git::current_branch()?; + let branch_name = format!("v{version_minor}"); + let tag_name = format!("v{version}"); + println!("Preparing the branch and the tag..."); + git::checkout_or_create_branch(&branch_name)?; + git::merge_branch(¤t_branch)?; + git::tag_version(&tag_name)?; + + println!("Pushing the branch and the tag..."); + git::push_branch(&branch_name)?; + git::push_branch(&tag_name)?; + + Ok(()) + } +} diff --git a/vdev/src/commands/run.rs b/vdev/src/commands/run.rs new file mode 100644 index 0000000..f259134 --- /dev/null +++ b/vdev/src/commands/run.rs @@ -0,0 +1,53 @@ +use std::{path::PathBuf, process::Command}; + +use anyhow::{bail, Result}; +use clap::Args; + +use crate::{app::CommandExt as _, features}; + +/// Run `vector` with the minimum set of features required by the config file +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// Build and run `vector` in debug mode (default) + #[arg(long, default_value_t = true)] + debug: bool, + + /// Build and run `vector` in release mode + #[arg(long)] + release: bool, + + /// Name an additional feature to add to the build + #[arg(short = 'F', long)] + feature: Vec, + + /// Path to configuration file + config: PathBuf, + + /// Non-config arguments to `vector` + args: Vec, +} + +impl Cli { + pub(super) fn exec(self) -> Result<()> { + if self.debug && self.release { + bail!("Can only set one of `--debug` and `--release`"); + } + + let mut features = features::load_and_extract(&self.config)?; + features.extend(self.feature); + let features = features.join(","); + let mut command = Command::new("cargo"); + command.args(["run", "--no-default-features", "--features", &features]); + if self.release { + command.arg("--release"); + } + command.args([ + "--", + "--config", + self.config.to_str().expect("Invalid config file name"), + ]); + command.args(self.args); + command.check_run() + } +} diff --git a/vdev/src/commands/status.rs b/vdev/src/commands/status.rs new file mode 100644 index 0000000..640e02f --- /dev/null +++ b/vdev/src/commands/status.rs @@ -0,0 +1,18 @@ +use anyhow::Result; +use clap::Args; + +use crate::git; + +/// Show information about the current environment +#[derive(Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + println!("Branch: {}", git::current_branch()?); + println!("Changed files: {}", git::changed_files()?.len()); + + Ok(()) + } +} diff --git a/vdev/src/commands/test.rs b/vdev/src/commands/test.rs new file mode 100644 index 0000000..c54c45a --- /dev/null +++ b/vdev/src/commands/test.rs @@ -0,0 +1,59 @@ +use anyhow::Result; +use clap::Args; +use std::collections::BTreeMap; + +use crate::platform; +use crate::testing::runner::get_agent_test_runner; + +/// Execute tests +#[derive(Args, Debug)] +#[command()] +pub struct Cli { + /// Extra test command arguments + args: Option>, + + /// Whether to run tests in a container + #[arg(short = 'C', long)] + container: bool, + + /// Environment variables in the form KEY[=VALUE] + #[arg(short, long)] + env: Option>, +} + +fn parse_env(env: Vec) -> BTreeMap> { + env.into_iter() + .map(|entry| { + #[allow(clippy::map_unwrap_or)] // Can't use map_or due to borrowing entry + entry + .split_once('=') + .map(|(k, v)| (k.to_owned(), Some(v.to_owned()))) + .unwrap_or_else(|| (entry, None)) + }) + .collect() +} + +impl Cli { + pub fn exec(self) -> Result<()> { + let runner = get_agent_test_runner(self.container)?; + + let mut args = vec!["--workspace".to_string()]; + + if let Some(mut extra_args) = self.args { + args.append(&mut extra_args); + } + + if !args.contains(&"--features".to_string()) { + let features = platform::default_features(); + args.extend(["--features".to_string(), features.to_string()]); + } + + runner.test( + &parse_env(self.env.unwrap_or_default()), + &BTreeMap::default(), + None, + &args, + "", + ) + } +} diff --git a/vdev/src/commands/test_vrl.rs b/vdev/src/commands/test_vrl.rs new file mode 100644 index 0000000..6644623 --- /dev/null +++ b/vdev/src/commands/test_vrl.rs @@ -0,0 +1,22 @@ +use anyhow::{Context as _, Result}; + +use crate::app; +use std::{env, path::PathBuf}; + +/// Run the Vector Remap Language test suite +#[derive(clap::Args, Debug)] +#[command()] +pub struct Cli {} + +impl Cli { + pub fn exec(self) -> Result<()> { + run_tests(&[app::path(), "lib", "vector-vrl", "tests"])?; + Ok(()) + } +} + +fn run_tests(path: &[&str]) -> Result<()> { + let path: PathBuf = path.iter().collect(); + env::set_current_dir(path).context("Could not change directory")?; + app::exec("cargo", ["run"], false) +} diff --git a/vdev/src/commands/version.rs b/vdev/src/commands/version.rs new file mode 100644 index 0000000..5aefae5 --- /dev/null +++ b/vdev/src/commands/version.rs @@ -0,0 +1,16 @@ +use anyhow::Result; + +use crate::app; + +/// Compute the release version of Vector. +#[derive(clap::Args, Debug)] +pub(super) struct Cli {} + +impl Cli { + pub(super) fn exec(self) -> Result<()> { + app::set_repo_dir()?; + let version = app::version()?; + println!("{version}"); + Ok(()) + } +} diff --git a/vdev/src/config.rs b/vdev/src/config.rs new file mode 100644 index 0000000..4bfc84e --- /dev/null +++ b/vdev/src/config.rs @@ -0,0 +1,24 @@ +use anyhow::{Context, Result}; +use serde::{Deserialize, Serialize}; +use std::path::PathBuf; + +const APP_NAME: &str = "vdev"; +const FILE_STEM: &str = "config"; + +#[derive(Serialize, Deserialize, Clone, Debug, Default)] +pub struct Config { + pub repo: String, +} + +pub fn path() -> Result { + confy::get_configuration_file_path(APP_NAME, FILE_STEM) + .with_context(|| "unable to find the config file") +} + +pub fn load() -> Result { + confy::load(APP_NAME, FILE_STEM).with_context(|| "unable to load config") +} + +pub fn save(config: Config) -> Result<()> { + confy::store(APP_NAME, FILE_STEM, config).with_context(|| "unable to save config") +} diff --git a/vdev/src/features.rs b/vdev/src/features.rs new file mode 100644 index 0000000..753b572 --- /dev/null +++ b/vdev/src/features.rs @@ -0,0 +1,136 @@ +use std::{collections::BTreeSet, collections::HashMap, ffi::OsStr, fs, path::Path}; + +use anyhow::{bail, Context, Result}; +use once_cell::sync::Lazy; +use serde::Deserialize; +use serde_json::Value; + +type ComponentMap = HashMap; + +// Use a BTree to keep the results in sorted order +type FeatureSet = BTreeSet; + +macro_rules! mapping { + ( $( $key:ident => $value:ident, )* ) => { + HashMap::from([ + $( (stringify!($key), stringify!($value)), )* + ]) + }; +} + +// Mapping of component names to feature name exceptions. + +static SOURCE_FEATURE_MAP: Lazy> = Lazy::new(|| { + mapping!( + prometheus_pushgateway => prometheus, + prometheus_scrape => prometheus, + prometheus_remote_write => prometheus, + ) +}); + +static TRANSFORM_FEATURE_MAP: Lazy> = Lazy::new(|| mapping!()); + +static SINK_FEATURE_MAP: Lazy> = Lazy::new(|| { + mapping!( + gcp_pubsub => gcp, + gcp_cloud_storage => gcp, + gcp_stackdriver_logs => gcp, + gcp_stackdriver_metrics => gcp, + prometheus_exporter => prometheus, + prometheus_remote_write => prometheus, + splunk_hec_logs => splunk_hec, + ) +}); + +/// This is a ersatz copy of the Vector config, containing just the elements we are interested in +/// examining. Everything else is thrown away. +#[derive(Deserialize)] +pub struct VectorConfig { + api: Option, + enterprise: Option, + + #[serde(default)] + sources: ComponentMap, + #[serde(default)] + transforms: ComponentMap, + #[serde(default)] + sinks: ComponentMap, +} + +#[derive(Deserialize)] +struct Component { + r#type: String, +} + +pub fn load_and_extract(filename: &Path) -> Result> { + let config = + fs::read_to_string(filename).with_context(|| format!("failed to read {filename:?}"))?; + + let config: VectorConfig = match filename + .extension() + .and_then(OsStr::to_str) + .map(str::to_lowercase) + .as_deref() + { + None => bail!("Invalid filename {filename:?}, no extension"), + Some("json") => serde_json::from_str(&config)?, + Some("toml") => toml::from_str(&config)?, + Some("yaml" | "yml") => serde_yaml::from_str(&config)?, + Some(_) => bail!("Invalid filename {filename:?}, unknown extension"), + }; + + Ok(from_config(config)) +} + +pub fn from_config(config: VectorConfig) -> Vec { + let mut features = FeatureSet::default(); + add_option(&mut features, "api", &config.api); + add_option(&mut features, "enterprise", &config.enterprise); + + get_features( + &mut features, + "sources", + config.sources, + &SOURCE_FEATURE_MAP, + ); + get_features( + &mut features, + "transforms", + config.transforms, + &TRANSFORM_FEATURE_MAP, + ); + get_features(&mut features, "sinks", config.sinks, &SINK_FEATURE_MAP); + + // Set of always-compiled components, in terms of their computed feature flag, that should + // not be emitted as they don't actually have a feature flag because we always compile them. + features.remove("transforms-log_to_metric"); + + features.into_iter().collect() +} + +fn add_option(features: &mut FeatureSet, name: &str, field: &Option) { + if field.is_some() { + features.insert(name.into()); + } +} + +// Extract the set of features for a particular key from the config, using the exception mapping to +// rewrite component names to their feature names where needed. +fn get_features( + features: &mut FeatureSet, + key: &str, + section: ComponentMap, + exceptions: &HashMap<&str, &str>, +) { + features.extend( + section + .into_values() + .map(|component| component.r#type) + .map(|name| { + exceptions + .get(name.as_str()) + .map_or(name, ToString::to_string) + }) + .map(|name| format!("{key}-{name}")), + ); +} diff --git a/vdev/src/git.rs b/vdev/src/git.rs new file mode 100644 index 0000000..fb5ddbc --- /dev/null +++ b/vdev/src/git.rs @@ -0,0 +1,148 @@ +use std::{collections::HashSet, process::Command}; + +use anyhow::Result; + +use crate::app::CommandExt as _; + +pub fn current_branch() -> Result { + let output = check_output(&["rev-parse", "--abbrev-ref", "HEAD"])?; + Ok(output.trim_end().to_string()) +} + +pub fn checkout_or_create_branch(branch_name: &str) -> Result<()> { + if branch_exists(branch_name)? { + checkout_branch(branch_name)?; + } else { + create_branch(branch_name)?; + } + Ok(()) +} + +pub fn merge_branch(branch_name: &str) -> Result<()> { + let _output = check_output(&["merge", "--ff", branch_name])?; + Ok(()) +} + +pub fn tag_version(version: &str) -> Result<()> { + let _output = check_output(&["tag", "--annotate", version, "--message", version])?; + Ok(()) +} + +pub fn push_branch(branch_name: &str) -> Result<()> { + let _output = check_output(&["push", "origin", branch_name])?; + Ok(()) +} + +pub fn changed_files() -> Result> { + let mut files = HashSet::new(); + + // Committed e.g.: + // A relative/path/to/file.added + // M relative/path/to/file.modified + let output = check_output(&["diff", "--name-status", "origin/master..."])?; + for line in output.lines() { + if !is_warning_line(line) { + if let Some((_, path)) = line.split_once('\t') { + files.insert(path.to_string()); + } + } + } + + // Tracked + let output = check_output(&["diff", "--name-only", "HEAD"])?; + for line in output.lines() { + if !is_warning_line(line) { + files.insert(line.to_string()); + } + } + + // Untracked + let output = check_output(&["ls-files", "--others", "--exclude-standard"])?; + for line in output.lines() { + files.insert(line.to_string()); + } + + let mut sorted = Vec::from_iter(files); + sorted.sort(); + + Ok(sorted) +} + +pub fn list_files() -> Result> { + Ok(check_output(&["ls-files"])? + .lines() + .map(str::to_owned) + .collect()) +} + +pub fn get_git_sha() -> Result { + check_output(&["rev-parse", "--short", "HEAD"]).map(|output| output.trim_end().to_string()) +} + +/// Get a list of files that have been modified, as a vector of strings +pub fn get_modified_files() -> Result> { + let args = vec![ + "ls-files", + "--full-name", + "--modified", + "--others", + "--exclude-standard", + ]; + Ok(check_output(&args)?.lines().map(str::to_owned).collect()) +} + +pub fn set_config_value(key: &str, value: &str) -> Result { + Command::new("git") + .args(["config", key, value]) + .stdout(std::process::Stdio::null()) + .check_output() +} + +/// Checks if the current directory's repo is clean +pub fn check_git_repository_clean() -> Result { + Ok(Command::new("git") + .args(["diff-index", "--quiet", "HEAD"]) + .stdout(std::process::Stdio::null()) + .status() + .map(|status| status.success())?) +} + +/// Commits changes from the current repo +pub fn commit(commit_message: &str) -> Result { + Command::new("git") + .args(["commit", "--all", "--message", commit_message]) + .check_output() +} + +/// Pushes changes from the current repo +pub fn push() -> Result { + Command::new("git").args(["push"]).check_output() +} + +pub fn clone(repo_url: &str) -> Result { + // We cannot use capture_output since this will need to run in the CWD + Command::new("git").args(["clone", repo_url]).check_output() +} + +pub fn branch_exists(branch_name: &str) -> Result { + let output = check_output(&["rev-parse", "--verify", branch_name])?; + Ok(!output.is_empty()) +} + +pub fn checkout_branch(branch_name: &str) -> Result<()> { + let _output = check_output(&["checkout", branch_name])?; + Ok(()) +} + +pub fn create_branch(branch_name: &str) -> Result<()> { + let _output = check_output(&["checkout", "-b", branch_name])?; + Ok(()) +} + +fn check_output(args: &[&str]) -> Result { + Command::new("git").in_repo().args(args).check_output() +} + +fn is_warning_line(line: &str) -> bool { + line.starts_with("warning: ") || line.contains("original line endings") +} diff --git a/vdev/src/macros.rs b/vdev/src/macros.rs new file mode 100644 index 0000000..85734fd --- /dev/null +++ b/vdev/src/macros.rs @@ -0,0 +1,39 @@ +macro_rules! fatal { + ($($arg:tt)*) => {{ + use owo_colors::OwoColorize; + eprintln!( + "{}", + format!($($arg)*) + .if_supports_color(owo_colors::Stream::Stderr, |text| text.bright_red()) + ); + std::process::exit(1); + }}; +} + +macro_rules! define_display_macro { + // https://github.com/rust-lang/rust/issues/35853#issuecomment-415993963 + // https://github.com/rust-lang/rust/issues/83527#issuecomment-1281176235 + ($name:ident, $level:ident, $style:ident, $d:tt) => ( + #[allow(unused_macros)] + macro_rules! $name { + ($d($d arg:tt)*) => {{ + use owo_colors::OwoColorize; + if log::Level::$level <= *$crate::app::verbosity() { + eprintln!( + "{}", + format!($d($d arg)*) + .if_supports_color(owo_colors::Stream::Stderr, |text| text.$style()) + ); + } + }}; + } + ); +} + +define_display_macro!(trace, Trace, underline, $); +define_display_macro!(debug, Debug, italic, $); +define_display_macro!(info, Info, bold, $); +define_display_macro!(success, Info, bright_cyan, $); +define_display_macro!(waiting, Info, bright_magenta, $); +define_display_macro!(warn, Warn, bright_yellow, $); +define_display_macro!(error, Error, bright_red, $); diff --git a/vdev/src/main.rs b/vdev/src/main.rs new file mode 100644 index 0000000..fc87b15 --- /dev/null +++ b/vdev/src/main.rs @@ -0,0 +1,43 @@ +#![deny(clippy::pedantic, warnings)] +#![allow( + clippy::module_name_repetitions, + clippy::print_stdout, + clippy::unused_self, + clippy::unnecessary_wraps +)] + +#[macro_use] +mod macros; +mod app; +mod commands; +mod config; +mod features; +mod git; +mod platform; +mod testing; +mod util; + +use anyhow::Result; +use clap::Parser; +use std::env; + +use commands::Cli; + +fn main() -> Result<()> { + let cli = Cli::parse(); + + app::set_global_verbosity(cli.verbose.log_level_filter()); + app::set_global_config(config::load()?); + + let path = if app::config().repo.is_empty() { + env::current_dir() + .expect("Could not determine current directory") + .display() + .to_string() + } else { + app::config().repo.clone() + }; + app::set_global_path(path); + + cli.exec() +} diff --git a/vdev/src/platform.rs b/vdev/src/platform.rs new file mode 100644 index 0000000..7013c28 --- /dev/null +++ b/vdev/src/platform.rs @@ -0,0 +1,41 @@ +use directories::ProjectDirs; + +use std::env::consts::ARCH; +use std::path::{Path, PathBuf}; +use std::sync::OnceLock; + +pub fn canonicalize_path(path: impl AsRef) -> String { + let path = path.as_ref(); + dunce::canonicalize(path) + .unwrap_or_else(|err| panic!("Could not canonicalize path {path:?}: {err}")) + .display() + .to_string() +} + +pub fn data_dir() -> &'static Path { + static DATA_DIR: OnceLock = OnceLock::new(); + DATA_DIR.get_or_init(|| { + ProjectDirs::from("", "vector", "vdev") + .expect("Could not determine the project directory") + .data_local_dir() + .to_path_buf() + }) +} + +pub fn default_target() -> String { + if cfg!(windows) { + format!("{ARCH}-pc-windows-msvc") + } else if cfg!(macos) { + format!("{ARCH}-apple-darwin") + } else { + format!("{ARCH}-unknown-linux-gnu") + } +} + +pub fn default_features() -> &'static str { + if cfg!(windows) { + "default-msvc" + } else { + "default" + } +} diff --git a/vdev/src/testing/config.rs b/vdev/src/testing/config.rs new file mode 100644 index 0000000..314e7a0 --- /dev/null +++ b/vdev/src/testing/config.rs @@ -0,0 +1,226 @@ +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; +use std::{env, fs}; + +use anyhow::{bail, Context, Result}; +use indexmap::IndexMap; +use itertools::{self, Itertools}; +use serde::{Deserialize, Serialize}; +use serde_yaml::Value; + +use crate::{app, util}; + +const FILE_NAME: &str = "test.yaml"; + +pub const INTEGRATION_TESTS_DIR: &str = "integration"; +pub const E2E_TESTS_DIR: &str = "e2e"; + +pub type Environment = BTreeMap>; + +#[derive(Deserialize, Debug)] +pub struct RustToolchainRootConfig { + pub toolchain: RustToolchainConfig, +} + +#[derive(Deserialize, Debug)] +pub struct RustToolchainConfig { + pub channel: String, +} + +impl RustToolchainConfig { + pub fn parse() -> Result { + let repo_path = app::path(); + let config_file: PathBuf = [repo_path, "rust-toolchain.toml"].iter().collect(); + let contents = fs::read_to_string(&config_file) + .with_context(|| format!("failed to read {config_file:?}"))?; + let config: RustToolchainRootConfig = toml::from_str(&contents) + .with_context(|| format!("failed to parse {config_file:?}"))?; + + Ok(config.toolchain) + } +} + +pub fn get_rust_version() -> String { + match RustToolchainConfig::parse() { + Ok(config) => config.channel, + Err(error) => fatal!("Could not read `rust-toolchain.toml` file: {error}"), + } +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct ComposeConfig { + pub services: BTreeMap, + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] + pub volumes: BTreeMap, + #[serde(default)] + pub networks: BTreeMap>, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct ComposeService { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hostname: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub container_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub build: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ports: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env_file: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub volumes: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub environment: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub depends_on: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub healthcheck: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +#[serde(untagged)] +pub enum Command { + Single(String), + Multiple(Vec), +} + +impl ComposeConfig { + pub fn parse(path: &Path) -> Result { + let contents = + fs::read_to_string(path).with_context(|| format!("failed to read {path:?}"))?; + serde_yaml::from_str(&contents).with_context(|| format!("failed to parse {path:?}")) + } +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct ComposeTestConfig { + /// The list of arguments to add to the command line for the test runner + pub args: Option>, + /// The set of environment variables to set in both the services and the runner. Variables with + /// no value are treated as "passthrough" -- they must be set by the caller of `vdev` and are + /// passed into the containers. + #[serde(default)] + pub env: Environment, + /// The matrix of environment configurations values. + matrix: IndexMap>, + /// Configuration specific to the compose services. + #[serde(default)] + pub runner: IntegrationRunnerConfig, + + pub features: Vec, + + pub test: Option, + + pub test_filter: Option, + + pub paths: Option>, +} + +#[derive(Clone, Debug, Default, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct IntegrationRunnerConfig { + /// The set of environment variables to set in just the runner. This is used for settings that + /// might otherwise affect the operation of either docker or docker-compose but are needed in + /// the runner. + #[serde(default)] + pub env: Environment, + /// The set of volumes that need to be mounted into the runner. + #[serde(default)] + pub volumes: BTreeMap, + /// Does the test runner need access to the host's docker socket? + #[serde(default)] + pub needs_docker_socket: bool, +} + +impl ComposeTestConfig { + fn parse_file(config_file: &Path) -> Result { + let contents = fs::read_to_string(config_file) + .with_context(|| format!("failed to read {}", config_file.display()))?; + let config: Self = serde_yaml::from_str(&contents).with_context(|| { + format!( + "failed to parse integration test configuration file {}", + config_file.display() + ) + })?; + + Ok(config) + } + + pub fn environments(&self) -> IndexMap { + self.matrix + .values() + .multi_cartesian_product() + .map(|product| { + let key = product.iter().join("-"); + let config: Environment = self + .matrix + .keys() + .zip(product) + .map(|(variable, value)| (variable.clone(), Some(value.clone()))) + .collect(); + (key, config) + }) + .collect() + } + + pub fn load(root_dir: &str, integration: &str) -> Result<(PathBuf, Self)> { + let test_dir: PathBuf = [app::path(), "scripts", root_dir, integration] + .iter() + .collect(); + + if !test_dir.is_dir() { + bail!("unknown integration: {}", integration); + } + + let config = Self::parse_file(&test_dir.join(FILE_NAME))?; + Ok((test_dir, config)) + } + + fn collect_all_dir(tests_dir: &Path, configs: &mut BTreeMap) -> Result<()> { + for entry in tests_dir.read_dir()? { + let entry = entry?; + if entry.path().is_dir() { + let config_file: PathBuf = + [entry.path().to_str().unwrap(), FILE_NAME].iter().collect(); + if util::exists(&config_file)? { + let config = Self::parse_file(&config_file)?; + configs.insert(entry.file_name().into_string().unwrap(), config); + } + } + } + Ok(()) + } + + pub fn collect_all(root_dir: &str) -> Result> { + let mut configs = BTreeMap::new(); + + let tests_dir: PathBuf = [app::path(), "scripts", root_dir].iter().collect(); + + Self::collect_all_dir(&tests_dir, &mut configs)?; + + Ok(configs) + } + + /// Ensure that all passthrough environment variables are set. + pub fn check_required(&self) -> Result<()> { + let missing: Vec<_> = self + .env + .iter() + .chain(self.runner.env.iter()) + .filter_map(|(key, value)| value.is_none().then_some(key)) + .filter(|var| env::var(var).is_err()) + .collect(); + if missing.is_empty() { + Ok(()) + } else { + let missing = missing.into_iter().join(", "); + bail!("Required environment variables are not set: {missing}"); + } + } +} diff --git a/vdev/src/testing/integration.rs b/vdev/src/testing/integration.rs new file mode 100644 index 0000000..c490336 --- /dev/null +++ b/vdev/src/testing/integration.rs @@ -0,0 +1,407 @@ +use std::{collections::BTreeMap, fs, path::Path, path::PathBuf, process::Command}; + +use anyhow::{bail, Context, Result}; +use tempfile::{Builder, NamedTempFile}; + +use super::config::{ + ComposeConfig, ComposeTestConfig, Environment, E2E_TESTS_DIR, INTEGRATION_TESTS_DIR, +}; +use super::runner::{ + ContainerTestRunner as _, IntegrationTestRunner, TestRunner as _, CONTAINER_TOOL, DOCKER_SOCKET, +}; +use super::state::EnvsDir; +use crate::app::CommandExt as _; +use crate::testing::config::get_rust_version; + +const NETWORK_ENV_VAR: &str = "VECTOR_NETWORK"; + +const INTEGRATION_FEATURE_FLAG: &str = "all-integration-tests"; +const E2E_FEATURE_FLAG: &str = "all-e2e-tests"; + +pub(crate) struct ComposeTest { + test_name: String, + environment: String, + config: ComposeTestConfig, + envs_dir: EnvsDir, + runner: IntegrationTestRunner, + compose: Option, + env_config: Environment, + build_all: bool, + retries: u8, +} + +pub(crate) trait ComposeTestT { + const DIRECTORY: &'static str; + + const FEATURE_FLAG: &'static str; + + fn generate( + test_name: impl Into, + environment: impl Into, + build_all: bool, + retries: u8, + ) -> Result { + let test_name = test_name.into(); + let environment = environment.into(); + let (test_dir, config) = ComposeTestConfig::load(Self::DIRECTORY, &test_name)?; + let envs_dir = EnvsDir::new(&test_name); + let Some(mut env_config) = config.environments().get(&environment).cloned() else { + bail!("Could not find environment named {environment:?}"); + }; + + let network_name = format!("vector-integration-tests-{test_name}"); + let compose = Compose::new(test_dir, env_config.clone(), network_name.clone())?; + + // None if compiling with all integration test feature flag. + let runner_name = (!build_all).then(|| test_name.clone()); + + let runner = IntegrationTestRunner::new( + runner_name, + &config.runner, + compose.is_some().then_some(network_name), + )?; + + env_config.insert("VECTOR_IMAGE".to_string(), Some(runner.image_name())); + + Ok(ComposeTest { + test_name, + environment, + config, + envs_dir, + runner, + compose, + env_config, + build_all, + retries, + }) + } + + fn test(compose_test: &ComposeTest, extra_args: Vec) -> Result<()> { + let active = compose_test + .envs_dir + .check_active(&compose_test.environment)?; + compose_test.config.check_required()?; + + if !active { + Self::start(compose_test)?; + } + + let mut env_vars = compose_test.config.env.clone(); + // Make sure the test runner has the same config environment vars as the services do. + for (key, value) in config_env(&compose_test.env_config) { + env_vars.insert(key, Some(value)); + } + + env_vars.insert("TEST_LOG".to_string(), Some("info".into())); + let mut args = compose_test.config.args.clone().unwrap_or_default(); + + args.push("--features".to_string()); + + args.push(if compose_test.build_all { + Self::FEATURE_FLAG.to_string() + } else { + compose_test.config.features.join(",") + }); + + // If the test field is not present then use the --lib flag + match compose_test.config.test { + Some(ref test_arg) => { + args.push("--test".to_string()); + args.push(test_arg.to_string()); + } + None => args.push("--lib".to_string()), + } + + // Ensure the test_filter args are passed as well + if let Some(ref filter) = compose_test.config.test_filter { + args.push(filter.to_string()); + } + args.extend(extra_args); + + // Some arguments are not compatible with the --no-capture arg + if !args.contains(&"--test-threads".to_string()) { + args.push("--no-capture".to_string()); + } + + if compose_test.retries > 0 { + args.push("--retries".to_string()); + args.push(compose_test.retries.to_string()); + } + + compose_test.runner.test( + &env_vars, + &compose_test.config.runner.env, + Some(&compose_test.config.features), + &args, + Self::DIRECTORY, + )?; + + if !active { + compose_test.runner.remove()?; + Self::stop(compose_test)?; + } + Ok(()) + } + + fn start(compose_test: &ComposeTest) -> Result<()> { + // For end-to-end tests, we want to run vector as a service, leveraging the + // image for the runner. So we must build that image before starting the + // compose so that it is available. + if Self::DIRECTORY == E2E_TESTS_DIR { + compose_test + .runner + .build(Some(&compose_test.config.features), Self::DIRECTORY)?; + } + + compose_test.config.check_required()?; + if let Some(compose) = &compose_test.compose { + compose_test.runner.ensure_network()?; + + if compose_test + .envs_dir + .check_active(&compose_test.environment)? + { + bail!("environment is already up"); + } + + compose.start(&compose_test.env_config)?; + + compose_test + .envs_dir + .save(&compose_test.environment, &compose_test.env_config) + } else { + Ok(()) + } + } + + fn stop(compose_test: &ComposeTest) -> Result<()> { + if let Some(compose) = &compose_test.compose { + // TODO: Is this check really needed? + if compose_test.envs_dir.load()?.is_none() { + bail!("No environment for {} is up.", compose_test.test_name); + } + + compose_test.runner.remove()?; + compose.stop()?; + compose_test.envs_dir.remove()?; + } + + Ok(()) + } +} + +/// Integration tests are located in the `scripts/integration` dir, +/// and are the full feature flag is `all-integration-tests`. +pub(crate) struct IntegrationTest; + +impl ComposeTestT for IntegrationTest { + const DIRECTORY: &'static str = INTEGRATION_TESTS_DIR; + + const FEATURE_FLAG: &'static str = INTEGRATION_FEATURE_FLAG; +} + +/// E2E tests are located in the `scripts/e2e` dir, +/// and are the full feature flag is `all-e2e-tests`. +pub(crate) struct E2ETest; + +impl ComposeTestT for E2ETest { + const DIRECTORY: &'static str = E2E_TESTS_DIR; + + const FEATURE_FLAG: &'static str = E2E_FEATURE_FLAG; +} + +struct Compose { + original_path: PathBuf, + test_dir: PathBuf, + env: Environment, + #[cfg_attr(target_family = "windows", allow(dead_code))] + config: ComposeConfig, + network: String, + temp_file: NamedTempFile, +} + +impl Compose { + fn new(test_dir: PathBuf, env: Environment, network: String) -> Result> { + let original_path: PathBuf = [&test_dir, Path::new("compose.yaml")].iter().collect(); + + match original_path.try_exists() { + Err(error) => Err(error).with_context(|| format!("Could not lookup {original_path:?}")), + Ok(false) => Ok(None), + Ok(true) => { + let mut config = ComposeConfig::parse(&original_path)?; + // Inject the networks block + config.networks.insert( + "default".to_string(), + BTreeMap::from_iter([ + ("name".to_string(), network.clone()), + ("external".to_string(), "true".to_string()), + ]), + ); + + // Create a named tempfile, there may be resource leakage here in case of SIGINT + // Tried tempfile::tempfile() but this returns a File object without a usable path + // https://docs.rs/tempfile/latest/tempfile/#resource-leaking + let temp_file = Builder::new() + .prefix("compose-temp-") + .suffix(".yaml") + .tempfile_in(&test_dir) + .with_context(|| "Failed to create temporary compose file")?; + + fs::write( + temp_file.path(), + serde_yaml::to_string(&config) + .with_context(|| "Failed to serialize modified compose.yaml")?, + )?; + + Ok(Some(Self { + original_path, + test_dir, + env, + config, + network, + temp_file, + })) + } + } + } + + fn start(&self, config: &Environment) -> Result<()> { + self.prepare()?; + self.run("Starting", &["up", "--detach"], Some(config)) + } + + fn stop(&self) -> Result<()> { + // The config settings are not needed when stopping a compose setup. + self.run("Stopping", &["down", "--timeout", "0", "--volumes"], None) + } + + fn run(&self, action: &str, args: &[&'static str], config: Option<&Environment>) -> Result<()> { + let mut command = CONTAINER_TOOL.clone(); + command.push("-compose"); + let mut command = Command::new(command); + // When the integration test environment is already active, the tempfile path does not + // exist because `Compose::new()` has not been called. In this case, the `stop` command + // needs to use the calculated path from the integration name instead of the nonexistent + // tempfile path. This is because `stop` doesn't go through the same logic as `start` + // and doesn't create a new tempfile before calling docker compose. + // If stop command needs to use some of the injected bits then we need to rebuild it + command.arg("--file"); + if config.is_none() { + command.arg(&self.original_path); + } else { + command.arg(self.temp_file.path()); + } + + command.args(args); + + command.current_dir(&self.test_dir); + + command.env("DOCKER_SOCKET", &*DOCKER_SOCKET); + command.env(NETWORK_ENV_VAR, &self.network); + + // some services require this in order to build Vector + command.env("RUST_VERSION", get_rust_version()); + + for (key, value) in &self.env { + if let Some(value) = value { + command.env(key, value); + } + } + if let Some(config) = config { + command.envs(config_env(config)); + } + + waiting!("{action} service environment"); + command.check_run() + } + + fn prepare(&self) -> Result<()> { + #[cfg(unix)] + unix::prepare_compose_volumes(&self.config, &self.test_dir)?; + Ok(()) + } +} + +fn config_env(config: &Environment) -> impl Iterator + '_ { + config.iter().filter_map(|(var, value)| { + value.as_ref().map(|value| { + ( + format!("CONFIG_{}", var.replace('-', "_").to_uppercase()), + value.to_string(), + ) + }) + }) +} + +#[cfg(unix)] +mod unix { + use std::fs::{self, Metadata, Permissions}; + use std::os::unix::fs::PermissionsExt as _; + use std::path::{Path, PathBuf}; + + use anyhow::{Context, Result}; + + use super::super::config::ComposeConfig; + + /// Unix permissions mask to allow everybody to read a file + const ALL_READ: u32 = 0o444; + /// Unix permissions mask to allow everybody to read a directory + const ALL_READ_DIR: u32 = 0o555; + + /// Fix up potential issues before starting a compose container + pub fn prepare_compose_volumes(config: &ComposeConfig, test_dir: &Path) -> Result<()> { + for service in config.services.values() { + // Make sure all volume files are world readable + if let Some(volumes) = &service.volumes { + for volume in volumes { + let source = volume + .split_once(':') + .expect("Invalid volume in compose file") + .0; + // Only fixup relative paths, i.e. within our source tree. + if !config.volumes.contains_key(source) + && !source.starts_with('/') + && !source.starts_with('$') + { + let path: PathBuf = [test_dir, Path::new(source)].iter().collect(); + add_read_permission(&path)?; + } + } + } + } + Ok(()) + } + + /// Recursively add read permissions to the + fn add_read_permission(path: &Path) -> Result<()> { + let metadata = path + .metadata() + .with_context(|| format!("Could not get permissions on {path:?}"))?; + + if metadata.is_file() { + add_permission(path, &metadata, ALL_READ) + } else { + if metadata.is_dir() { + add_permission(path, &metadata, ALL_READ_DIR)?; + for entry in fs::read_dir(path) + .with_context(|| format!("Could not read directory {path:?}"))? + { + let entry = entry + .with_context(|| format!("Could not read directory entry in {path:?}"))?; + add_read_permission(&entry.path())?; + } + } + Ok(()) + } + } + + fn add_permission(path: &Path, metadata: &Metadata, bits: u32) -> Result<()> { + let perms = metadata.permissions(); + let new_perms = Permissions::from_mode(perms.mode() | bits); + if new_perms != perms { + fs::set_permissions(path, new_perms) + .with_context(|| format!("Could not set permissions on {path:?}"))?; + } + Ok(()) + } +} diff --git a/vdev/src/testing/mod.rs b/vdev/src/testing/mod.rs new file mode 100644 index 0000000..1bec37b --- /dev/null +++ b/vdev/src/testing/mod.rs @@ -0,0 +1,4 @@ +pub mod config; +pub mod integration; +pub mod runner; +pub mod state; diff --git a/vdev/src/testing/runner.rs b/vdev/src/testing/runner.rs new file mode 100644 index 0000000..01f167e --- /dev/null +++ b/vdev/src/testing/runner.rs @@ -0,0 +1,444 @@ +use std::collections::HashSet; +use std::process::{Command, Stdio}; +use std::{env, ffi::OsStr, ffi::OsString, path::PathBuf}; + +use anyhow::Result; +use once_cell::sync::Lazy; + +use super::config::{Environment, IntegrationRunnerConfig, RustToolchainConfig}; +use crate::app::{self, CommandExt as _}; +use crate::util::{ChainArgs as _, IS_A_TTY}; + +const MOUNT_PATH: &str = "/home/vector"; +const TARGET_PATH: &str = "/home/target"; +const VOLUME_TARGET: &str = "vector_target"; +const VOLUME_CARGO_GIT: &str = "vector_cargo_git"; +const VOLUME_CARGO_REGISTRY: &str = "vector_cargo_registry"; +const RUNNER_HOSTNAME: &str = "runner"; +const TEST_COMMAND: &[&str] = &[ + "cargo", + "nextest", + "run", + "--no-fail-fast", + "--no-default-features", +]; +// The upstream container we publish artifacts to on a successful master build. +const UPSTREAM_IMAGE: &str = + "docker.io/timberio/vector-dev:sha-3eadc96742a33754a5859203b58249f6a806972a"; + +pub static CONTAINER_TOOL: Lazy = + Lazy::new(|| env::var_os("CONTAINER_TOOL").unwrap_or_else(detect_container_tool)); + +pub(super) static DOCKER_SOCKET: Lazy = Lazy::new(detect_docker_socket); + +fn detect_container_tool() -> OsString { + for tool in ["docker", "podman"] { + if Command::new(tool) + .arg("version") + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .spawn() + .and_then(|mut child| child.wait()) + .map_or(false, |status| status.success()) + { + return OsString::from(String::from(tool)); + } + } + fatal!("No container tool could be detected."); +} + +fn get_rust_version() -> String { + match RustToolchainConfig::parse() { + Ok(config) => config.channel, + Err(error) => fatal!("Could not read `rust-toolchain.toml` file: {error}"), + } +} + +fn dockercmd>(args: impl IntoIterator) -> Command { + let mut command = Command::new(&*CONTAINER_TOOL); + command.args(args); + command +} + +pub enum RunnerState { + Running, + Restarting, + Created, + Exited, + Paused, + Dead, + Missing, + Unknown, +} + +pub fn get_agent_test_runner(container: bool) -> Result> { + if container { + Ok(Box::new(DockerTestRunner)) + } else { + Ok(Box::new(LocalTestRunner)) + } +} + +pub trait TestRunner { + fn test( + &self, + outer_env: &Environment, + inner_env: &Environment, + features: Option<&[String]>, + args: &[String], + directory: &str, + ) -> Result<()>; +} + +pub trait ContainerTestRunner: TestRunner { + fn container_name(&self) -> String; + + fn image_name(&self) -> String; + + fn network_name(&self) -> Option<&str>; + + fn needs_docker_socket(&self) -> bool; + + fn volumes(&self) -> Vec; + + fn stop(&self) -> Result<()> { + dockercmd(["stop", "--time", "0", &self.container_name()]) + .wait(format!("Stopping container {}", self.container_name())) + } + + fn state(&self) -> Result { + let mut command = dockercmd(["ps", "-a", "--format", "{{.Names}} {{.State}}"]); + let container_name = self.container_name(); + + for line in command.check_output()?.lines() { + if let Some((name, state)) = line.split_once(' ') { + if name == container_name { + return Ok(if state == "created" { + RunnerState::Created + } else if state == "dead" { + RunnerState::Dead + } else if state == "exited" || state.starts_with("Exited ") { + RunnerState::Exited + } else if state == "paused" { + RunnerState::Paused + } else if state == "restarting" { + RunnerState::Restarting + } else if state == "running" || state.starts_with("Up ") { + RunnerState::Running + } else { + RunnerState::Unknown + }); + } + } + } + + Ok(RunnerState::Missing) + } + + fn ensure_running(&self, features: Option<&[String]>, directory: &str) -> Result<()> { + match self.state()? { + RunnerState::Running | RunnerState::Restarting => (), + RunnerState::Created | RunnerState::Exited => self.start()?, + RunnerState::Paused => self.unpause()?, + RunnerState::Dead | RunnerState::Unknown => { + self.remove()?; + self.create()?; + self.start()?; + } + RunnerState::Missing => { + self.build(features, directory)?; + self.ensure_volumes()?; + self.create()?; + self.start()?; + } + } + + Ok(()) + } + + fn ensure_volumes(&self) -> Result<()> { + let mut command = dockercmd(["volume", "ls", "--format", "{{.Name}}"]); + + let mut volumes = HashSet::new(); + volumes.insert(VOLUME_TARGET); + volumes.insert(VOLUME_CARGO_GIT); + volumes.insert(VOLUME_CARGO_REGISTRY); + for volume in command.check_output()?.lines() { + volumes.take(volume); + } + + for volume in &volumes { + dockercmd(["volume", "create", volume]).wait(format!("Creating volume {volume}"))?; + } + + Ok(()) + } + + fn build(&self, features: Option<&[String]>, directory: &str) -> Result<()> { + let dockerfile: PathBuf = [app::path(), "scripts", directory, "Dockerfile"] + .iter() + .collect(); + let mut command = dockercmd(["build"]); + command.current_dir(app::path()); + if *IS_A_TTY { + command.args(["--progress", "tty"]); + } + command.args([ + "--pull", + "--tag", + &self.image_name(), + "--file", + dockerfile.to_str().unwrap(), + "--label", + "vector-test-runner=true", + "--build-arg", + &format!("RUST_VERSION={}", get_rust_version()), + "--build-arg", + &format!("FEATURES={}", features.unwrap_or(&[]).join(",")), + ".", + ]); + + waiting!("Building image {}", self.image_name()); + command.check_run() + } + + fn start(&self) -> Result<()> { + dockercmd(["start", &self.container_name()]) + .wait(format!("Starting container {}", self.container_name())) + } + + fn remove(&self) -> Result<()> { + if matches!(self.state()?, RunnerState::Missing) { + Ok(()) + } else { + dockercmd(["rm", "--force", "--volumes", &self.container_name()]) + .wait(format!("Removing container {}", self.container_name())) + } + } + + fn unpause(&self) -> Result<()> { + dockercmd(["unpause", &self.container_name()]) + .wait(format!("Unpausing container {}", self.container_name())) + } + + fn create(&self) -> Result<()> { + let network_name = self.network_name().unwrap_or("host"); + + let docker_socket = format!("{}:/var/run/docker.sock", DOCKER_SOCKET.display()); + let docker_args = self + .needs_docker_socket() + .then(|| vec!["--volume", &docker_socket]) + .unwrap_or_default(); + + let volumes = self.volumes(); + let volumes: Vec<_> = volumes + .iter() + .flat_map(|volume| ["--volume", volume]) + .collect(); + + dockercmd( + [ + "create", + "--name", + &self.container_name(), + "--network", + network_name, + "--hostname", + RUNNER_HOSTNAME, + "--workdir", + MOUNT_PATH, + "--volume", + &format!("{}:{MOUNT_PATH}", app::path()), + "--volume", + &format!("{VOLUME_TARGET}:{TARGET_PATH}"), + "--volume", + &format!("{VOLUME_CARGO_GIT}:/usr/local/cargo/git"), + "--volume", + &format!("{VOLUME_CARGO_REGISTRY}:/usr/local/cargo/registry"), + ] + .chain_args(volumes) + .chain_args(docker_args) + .chain_args([&self.image_name(), "/bin/sleep", "infinity"]), + ) + .wait(format!("Creating container {}", self.container_name())) + } +} + +impl TestRunner for T +where + T: ContainerTestRunner, +{ + fn test( + &self, + outer_env: &Environment, + inner_env: &Environment, + features: Option<&[String]>, + args: &[String], + directory: &str, + ) -> Result<()> { + self.ensure_running(features, directory)?; + + let mut command = dockercmd(["exec"]); + if *IS_A_TTY { + command.arg("--tty"); + } + + command.args(["--env", &format!("CARGO_BUILD_TARGET_DIR={TARGET_PATH}")]); + for (key, value) in outer_env { + if let Some(value) = value { + command.env(key, value); + } + command.args(["--env", key]); + } + for (key, value) in inner_env { + command.arg("--env"); + match value { + Some(value) => command.arg(format!("{key}={value}")), + None => command.arg(key), + }; + } + + command.arg(&self.container_name()); + command.args(TEST_COMMAND); + command.args(args); + + command.check_run() + } +} + +pub(super) struct IntegrationTestRunner { + // The integration is None when compiling the runner image with the `all-integration-tests` feature. + integration: Option, + needs_docker_socket: bool, + network: Option, + volumes: Vec, +} + +impl IntegrationTestRunner { + pub(super) fn new( + integration: Option, + config: &IntegrationRunnerConfig, + network: Option, + ) -> Result { + Ok(Self { + integration, + needs_docker_socket: config.needs_docker_socket, + network, + volumes: config + .volumes + .iter() + .map(|(a, b)| format!("{a}:{b}")) + .collect(), + }) + } + + pub(super) fn ensure_network(&self) -> Result<()> { + if let Some(network_name) = &self.network { + let mut command = dockercmd(["network", "ls", "--format", "{{.Name}}"]); + + if command + .check_output()? + .lines() + .any(|network| network == network_name) + { + return Ok(()); + } + + dockercmd(["network", "create", network_name]).wait("Creating network") + } else { + Ok(()) + } + } +} + +impl ContainerTestRunner for IntegrationTestRunner { + fn network_name(&self) -> Option<&str> { + self.network.as_deref() + } + + fn container_name(&self) -> String { + if let Some(integration) = self.integration.as_ref() { + format!("vector-test-runner-{}-{}", integration, get_rust_version()) + } else { + format!("vector-test-runner-{}", get_rust_version()) + } + } + + fn image_name(&self) -> String { + format!("{}:latest", self.container_name()) + } + + fn needs_docker_socket(&self) -> bool { + self.needs_docker_socket + } + + fn volumes(&self) -> Vec { + self.volumes.clone() + } +} + +pub struct DockerTestRunner; + +impl ContainerTestRunner for DockerTestRunner { + fn network_name(&self) -> Option<&str> { + None + } + + fn container_name(&self) -> String { + format!("vector-test-runner-{}", get_rust_version()) + } + + fn image_name(&self) -> String { + env::var("ENVIRONMENT_UPSTREAM").unwrap_or_else(|_| UPSTREAM_IMAGE.to_string()) + } + + fn needs_docker_socket(&self) -> bool { + false + } + + fn volumes(&self) -> Vec { + Vec::default() + } +} + +pub struct LocalTestRunner; + +impl TestRunner for LocalTestRunner { + fn test( + &self, + outer_env: &Environment, + inner_env: &Environment, + _features: Option<&[String]>, + args: &[String], + _directory: &str, + ) -> Result<()> { + let mut command = Command::new(TEST_COMMAND[0]); + command.args(&TEST_COMMAND[1..]); + command.args(args); + + for (key, value) in outer_env { + if let Some(value) = value { + command.env(key, value); + } + } + for (key, value) in inner_env { + if let Some(value) = value { + command.env(key, value); + } + } + + command.check_run() + } +} + +fn detect_docker_socket() -> PathBuf { + match env::var_os("DOCKER_HOST") { + Some(host) => host + .into_string() + .expect("Invalid value in $DOCKER_HOST") + .strip_prefix("unix://") + .expect("$DOCKER_HOST is not a socket path") + .into(), + None => "/var/run/docker.sock".into(), + } +} diff --git a/vdev/src/testing/state.rs b/vdev/src/testing/state.rs new file mode 100644 index 0000000..94a4024 --- /dev/null +++ b/vdev/src/testing/state.rs @@ -0,0 +1,89 @@ +use std::path::{Path, PathBuf}; +use std::{fs, io::ErrorKind}; + +use anyhow::{anyhow, Context, Result}; +use once_cell::sync::Lazy; +use serde::{Deserialize, Serialize}; + +use super::config::Environment; +use crate::{platform, util}; + +static DATA_DIR: Lazy = Lazy::new(|| { + [platform::data_dir(), Path::new("integration")] + .into_iter() + .collect() +}); + +pub struct EnvsDir { + path: PathBuf, +} + +#[derive(Deserialize, Serialize)] +pub struct State { + pub active: String, + pub config: Environment, +} + +impl EnvsDir { + pub fn new(integration: &str) -> Self { + let config = format!("{integration}.json"); + let path = [&DATA_DIR, Path::new(&config)].iter().collect(); + Self { path } + } + + /// Check if the named environment is active. If the current config could not be loaded or a + /// different environment is active, an error is returned. + pub fn check_active(&self, name: &str) -> Result { + match self.active()? { + None => Ok(false), + Some(active) if active == name => Ok(true), + Some(active) => Err(anyhow!( + "Requested environment {name:?} does not match active one {active:?}" + )), + } + } + + /// Return the currently active environment name. + pub fn active(&self) -> Result> { + self.load().map(|state| state.map(|config| config.active)) + } + + /// Load the currently active state data. + pub fn load(&self) -> Result> { + let json = match fs::read_to_string(&self.path) { + Ok(json) => json, + Err(error) if error.kind() == ErrorKind::NotFound => return Ok(None), + Err(error) => { + return Err(error).context(format!("Could not read state file {:?}", self.path)) + } + }; + let state: State = serde_json::from_str(&json) + .with_context(|| format!("Could not parse state file {:?}", self.path))?; + Ok(Some(state)) + } + + pub fn save(&self, environment: &str, config: &Environment) -> Result<()> { + let config = State { + active: environment.into(), + config: config.clone(), + }; + let path = &*DATA_DIR; + if !path.is_dir() { + fs::create_dir_all(path) + .with_context(|| format!("failed to create directory {path:?}"))?; + } + + let config = serde_json::to_string(&config)?; + fs::write(&self.path, config) + .with_context(|| format!("failed to write file {:?}", self.path)) + } + + pub fn remove(&self) -> Result<()> { + if util::exists(&self.path)? { + fs::remove_file(&self.path) + .with_context(|| format!("failed to remove {:?}", self.path))?; + } + + Ok(()) + } +} diff --git a/vdev/src/util.rs b/vdev/src/util.rs new file mode 100644 index 0000000..e559b20 --- /dev/null +++ b/vdev/src/util.rs @@ -0,0 +1,86 @@ +use std::ffi::{OsStr, OsString}; +use std::io::IsTerminal; +use std::process::{Command, Output}; +use std::{collections::BTreeMap, fmt::Debug, fs, io::ErrorKind, path::Path}; + +use anyhow::{Context as _, Result}; +use once_cell::sync::Lazy; +use serde::Deserialize; +use serde_json::Value; + +pub static IS_A_TTY: Lazy = Lazy::new(|| std::io::stdout().is_terminal()); + +#[derive(Deserialize)] +pub struct CargoTomlPackage { + pub version: String, +} + +/// The bits of the top-level `Cargo.toml` configuration that `vdev` uses to drive its features. +#[derive(Deserialize)] +pub struct CargoToml { + pub package: CargoTomlPackage, + pub features: BTreeMap, +} + +impl CargoToml { + pub fn load() -> Result { + let text = fs::read_to_string("Cargo.toml").context("Could not read `Cargo.toml`")?; + toml::from_str::(&text).context("Invalid contents in `Cargo.toml`") + } +} + +/// Read the version string from `Cargo.toml` +pub fn read_version() -> Result { + CargoToml::load().map(|cargo| cargo.package.version) +} + +/// Use the version provided by env vars or default to reading from `Cargo.toml`. +pub fn get_version() -> Result { + std::env::var("VERSION") + .or_else(|_| std::env::var("VECTOR_VERSION")) + .or_else(|_| read_version()) +} + +pub fn git_head() -> Result { + Command::new("git") + .args(["describe", "--exact-match", "--tags", "HEAD"]) + .output() + .context("Could not execute `git`") +} + +pub fn get_channel() -> String { + std::env::var("CHANNEL").unwrap_or_else(|_| "custom".to_string()) +} + +pub fn exists(path: impl AsRef + Debug) -> Result { + match fs::metadata(path.as_ref()) { + Ok(_) => Ok(true), + Err(error) if error.kind() == ErrorKind::NotFound => Ok(false), + Err(error) => Err(error).context(format!("Could not stat {path:?}")), + } +} + +pub trait ChainArgs { + fn chain_args>(&self, args: impl IntoIterator) -> Vec; + fn chain_arg(&self, arg: impl Into) -> Vec { + self.chain_args([arg]) + } +} + +impl> ChainArgs for Vec { + fn chain_args>(&self, args: impl IntoIterator) -> Vec { + self.iter() + .map(Into::into) + .chain(args.into_iter().map(Into::into)) + .collect() + } +} + +impl> ChainArgs for [T] { + fn chain_args>(&self, args: impl IntoIterator) -> Vec { + self.iter() + .map(Into::into) + .chain(args.into_iter().map(Into::into)) + .collect() + } +}